ana sayfa > PHP > PHP’de Kullanıcı Tanımlı Fonksiyonlar

PHP’de Kullanıcı Tanımlı Fonksiyonlar

Cumartesi, 08 Kas 2008 Soner Gönül yorum ekle yorumlara git

Merhabalar..Fonksiyonlar bilgisayar bliminde belli işi yapan modüller olarak tanımlanır. Bu fonksiyonlar kullanıldığı ana programa ya bir değer döndürürler ya da ana program içinde bir işlev yaparlar.

PHP’de fonksiyon tanımlarken function deyimi kullanılır.

  1. function isim ($degisken1, $degisken2, $degisken3, … , $degisken n)
  2. {
  3. komut;
  4. ………..
  5. return $donendeger;
  6. }

Örnek olarak;

  1. <?php
  2. function kare ($a)
  3. {
  4. return $a * $a ;
  5. }
  6. $b = kare (5);
  7. echo “$b <br>”;
  8. echo kare (4);
  9. ?>

PHP ile bir fonksiyonun birden fazla değer döndürmesi de sağlanabilir. Bunun için return ifadesinden hemen önce compact deyimi kullanılır. Bu deyim ile dönen değerler tek bir değişkene atanır. Daha sonra bu değişken ana program içerisinde extract ile açılıp, dönen değerler tekrar kullanılır. Örneğin;

  1. <?php
  2. function toplam ($n)
  3. {
  4. $tekToplam = 0;
  5. $ciftToplam = 0;
  6. for ( $i = 1; $i <= $n; $i ++)
  7. {
  8. if ( $i % 2 == 0 )
  9. $ciftToplam = $ciftToplam + $i;
  10. else
  11. $tekToplam = $tekToplam + $i;
  12. }
  13. $tumToplam = $tekToplam + $ciftToplam;
  14. return compact (“tekToplam”,”ciftToplam”,”tumToplam”);
  15. }
  16. extract ( toplam(10) );
  17. echo “1+2+3+4+5+6+7+8+9+10 = $tumToplam<br>”;
  18. echo “1+3+5+7+9 = $tekToplam<br>”;
  19. echo “2+4+6+8+ = $ciftToplam”;
  20. ?>
  • Fonksiyonlarda Referansa Göre Çağırma

Şu ana kadar tanımladığımız fonksiyonlar gönderilen değişken değerine karşılık bir sonuç üretip, bize geri döndürüyorlardı. Bu şekilde bir fonksiyonun kendisine gelen değerlere göre sonuç üretmesine “Call By Value” denir. Bir fonksiyona değişkenin taşıdığı değer dışında gösterdiği adreste parametre olarak girilebilir. Buna ise “Call By Reference” denir. Call By Reference kullanıldığında, Call By Value’nin aksine fonksiyon ile çağrılan değişken üzerinde değişiklik yapılabilir. Fonksiyonun herhangi bir değer döndürmesine gerek yoktur. Örneğin;

  1. <?php
  2. function kare (&$sayi)
  3. {
  4. $sonuc = $sayi * $sayi;
  5. $sayi = $sonuc;
  6. }
  7. $x = 4;
  8. kare ($x);
  9. echo ($x);
  10. ?>
  • Varsayılan Parametreli Fonksiyonlar

PHP’de bir fonksiyon içerisinde kullanılan parametrelere varsayılan değer de atanabilir. Bu şekilde yapılan atama ile kullanıcı tanımlı fonksiyon herhangi bir parametre olmadan çağrılabilir. Örneğin;

  1. <?php
  2. funtcion faktoriyel ( $x = 5 )
  3. {
  4. $sonuc = 1;
  5. for ( $i = 1; $i <= $x; $i++ )
  6. $sonuc *= $i;
  7. return $sonuc;
  8. }
  9. echo faktoriyel() . “<br>”;
  10. echo faktoriyel(7) . “<br>”;
  11. ?>
  • Parametre Sayısı Değişen Değişkenler

Temel prensibi fonksiyona gönderilen değişkenlerin kaç tane olduğunun func_num_args() fonksiyonu ile tespit ettikten sonra da her bir değişkenin func_get_args() fonksiyonu ile indisli olarak çağrılmasıdır. İndisleme işlemi sıfırdan başlanarak değişken sayısının bir eksiğine kadar yapılır. Örneğin;

  1. <?php
  2. function carpim ()
  3. {
  4. $carpim = 1;
  5. $degiskensayi = func_num_args();
  6. for ( $i = 0; $i < $degiskensayi; $i++ )
  7. $carpim *= func_get_arg ($i);
  8. return $carpim;
  9. }
  10. echo carpim (1, 2, 3) . “<br>”;
  11. echo carpim (641, 3) . “<br>”;
  12. ?>
  • Kendi Kendini Çağıran Fonksiyonlar

Bunlara Recursice Fonksiyonlar denir. Favorim ise faktöriyel hesaplamasıdır. Örneğin;

  1. <?php
  2. function faktoriyel ($n) {
  3. if ( $n < 2 )
  4. {
  5. return 1;
  6. }
  7. else
  8. {
  9. return ( $n * faktoriyel ($n – 1) );
  10. }
  11. }
  12. echo faktoriyel ( 7 );
  13. ?>

Burda program şu şekilde işler. 7! = 7 * 6!, 6! = 6 * 5!, gibi …

  • Dışarıdan Bir Dosyadan Fonksiyon Çağırmak

PHP’de ise ana program parçasından dışarıda tutulan bir dosyadaki fonksiyon ya da değişken çağrılırken include ve require ifadeleri kullanılır. Bu ifadelerin her ikisi de string paramtre olarak olarak dosya adını kabul eder. Aradaki fark dosya bulunmadığında include fonksiyonun warning error üretmesi, require fonksiyonun ise fatal error hatası üretip kod işleyişini durdurmasıdır. Örneğin;

test.soner.php dosyamız;

  1. <?php
  2. function kup ( $a )
  3. {
  4. return $a * $a * $a;
  5. }
  6. $adi = “Soner”;
  7. $soyadi = “Gonul”;
  8. $dyeri = “Kirklareli”;
  9. ?>

ornek.php dosyamız;

  1. <?php
  2. require ( ‘test.soner.php’ );
  3. echo kup ( 5 );
  4. echo “<br>”;
  5. echo “Adı      = $adi <br>”;
  6. echo “Soyadı      = $soyadi <br>”;
  7. echo “Doğum Yeri      = $dyeri <br>”;
  8. ?>

Yukarıda require yerine include yazsaydık ikisi de aynı işlevi görürlerdi. Aralarındaki tek fark dosya bulunamadığında verilen hata mesajlarıdır.

Görüşmek üzere..

Related posts

Categories: PHP Tags: , , , , ,
blog comments powered by Disqus