Yazdır 07 Nisan 2010 Çarşamba (Hit: 42671)

Varsayılan Değer Alan Fonksiyonlar

Tanımlı olan bir fonksiyonu çağırırken tanımlamasında belirtilen sayıda ve tipte parametre göndermek gerekmektdir. Eğer fonksiyonun beklediği parametreler gelmezse fonksiyon hata verecektir. Bu durumda fonksiyonun hatasız çalışması için parametrelere varsayılan değer ataması yapılır.

Eğer fonksiyonun beklediği parametre gelmezse varsayılan değeri, gelirse gelen değerler kullanılır. Aşağıdaki örneği inceleyiniz.

<?php
function ortalama($not1,$not2,$not3){
   $ort=($not1+$not2+$not3)/3;
   return $ort;
}

echo "Ortalama=",ortalama(60,90); // hata verecektir. fonksiyon 3 parametre istiyor
?>

Örnekte gönderilen notların ortalamasını bulmak istiyoruz. Fonksiyon tanımlmasına bakıldığında 3 tane parametre yani not beklediği görüldüğü halde 2 tane not gönderilerek çağırılmış. Bundan dolayı hata oluşmaktadır. Hatayı engellemek için 3. not için varsayılan değer ataması yapalım.

<?php
function ortalama($not1,$not2,$not3="yok"){
   if ($not3=="yok")
      $ort=($not1+$not2)/2;
   else
      $ort=($not1+$not2+$not3)/3;
   return $ort;
}

echo "Ortalama=",ortalama(60,90); // hatasız çalışacaktır.
echo "<br>";
echo "Ortalama=",ortalama(60,90,30); // hatasız çalışacaktır.
?>

Eğer 3. not gönderilmezse "yok" olarak kabul edilir ve iki notun ortalaması, değilse 3. not gönderilmiş demektir. Bu durumda da üç notun ortalaması hesaplanarak gönderiliyor.

 

Örnek: Aldığı metni aldığı renkte ekrana yazdıralım. Eğer renk belirtilmezse siyah renkte yazdırılsın.

<?php
function yaz($metin,$renk="#000000"){
   echo "<font color=\"$renk\">$metin</font>";
}

echo yaz("Bir musibet bin nasihatttan iyidir!","blue");
echo "<br>";
echo yaz("Çalışan demir ışıldar!"); // renk gönderilmediğinden varsayılan olarak siyah yazılır
?>

 

Örnek: Dairenin alanını hesaplayan fonksiyonu yazalım. Eğer pi değeri belirtilmezse 3.14 kabul edilsin.

<?php
function daire($r,$pi="3.14"){
   $sonuc=$pi*$r*$r;
   return $sonuc;
}

echo "Alan=",daire(4,3); // ekrana Alan=48 yazar. $pi=3 kullanıldı
echo "<br>";
echo "Alan=",daire(4); // ekrana Alan=50.24 yazar. $pi=3.14 kullanıldı
?>

 

Örnek: Aldığı sayının belirtilen yüzdesini hesaplayan fonksiyonu tanımlayalım. Eğer yüzdesi belirtilmezse sayının kendisi gönderilsin.

<?php
function yuzdesi($sayi,$oran="100"){
   return ($sayi*$oran)/100;
}

echo "60'ın %12'si = ",yuzdesi(60,12);
echo "<br>";
echo "70'in %100'ü = ",yuzdesi(70);
?>

Örnek: Aldığı sayının aldığı üssünü bulan fonksiyonu tanımlayalım. Eğer üs belirtilmezse karesini hesaplasın.

<?php
function us_al($sayi,$üs=2){
   $sonuc=1;
   for($i=1;$i<=$üs;$i++)
      $sonuc*=$sayi;
   return $sonuc;
}

echo "5<sup>3</sup>=",us_al(5,3);
echo "<br>";
echo "4<sup>5</sup>=",us_al(4,5);
echo "<br>";
echo "4<sup>2</sup>=",us_al(4); // üs 2 kabul edildi
?>

 

Örnek: Aldığı notun 5 üzerinden karşılığını sayı olarak yada yazı olarak gönderen fonksiyonu tanımlayalım.

<?php
function karne($notu,$bicimi="sayi"){
   $sayi=array(0,1,2,3,4,5);
   $yazi=array("Başarısız","Kalır","Geçer","Orta","İyi","Pekiyi");
   switch ($notu){
      case ($notu>=85 and $notu<=100): $sonuc=($bicimi=="sayi")?$sayi[5]:$yazi[5]; break;
      case ($notu>=70 and $notu<=84): $sonuc=($bicimi=="sayi")?$sayi[4]:$yazi[4]; break;
      case ($notu>=55 and $notu<=69): $sonuc=($bicimi=="sayi")?$sayi[3]:$yazi[3]; break;
      case ($notu>=45 and $notu<=54): $sonuc=($bicimi=="sayi")?$sayi[2]:$yazi[2]; break;
      case ($notu>=25 and $notu<=44): $sonuc=($bicimi=="sayi")?$sayi[1]:$yazi[1]; break;
      case ($notu>=0 and $notu<=24): $sonuc=($bicimi=="sayi")?$sayi[0]:$yazi[0]; break;
      default: $sonuc="Hata: Geçersiz not!";
   }
   return $sonuc;
}

echo "Karne notunuz = ".karne(62)." ( ".karne(62,"yazi")." ) ";
echo "<br>";
echo "Karne notunuz = ".karne(-5)." ( ".karne(-5,"yazi")." ) ";
?>

Yukarıdaki örneğimizde notun biçimi belirtilmezse sayı karşılığı, belirtilirse yazı karşılığı gönderilir.


Bu site meslek liselerinde bilişim bölümü web programcılığı dalında okutulan internet programcılığı dersine yardımcı olması için tasarlanmıştır. İletişim için iletisim@phpdefteri.com
Apache PHP MySQL PhpMyAdmin EasyPHP Xampp AppServ Wamp W3School

www.phpdefteri.com © 2010