Fonksiyon çeşitleri,
Fonksiyon kullanma,
Fonksiyon Prototipi,
Fonksiyon tanımlama,
php,
php dersleri,
php öğren,
php öğreniyorum,
Recursive Fonksiyonlar
PHP - FONKSİYONLAR
Bu yazıda PHP dilindeki fonksiyonlar ile ilgili aşağıdaki başlıkları incelemeye çalışacağım.
- Fonksiyon kullanma mantığı
- Fonksiyon tanımlama
- Fonksiyon çeşitleri
- Recursive fonksiyonlar
- Fonksiyon bilgilerini elde etme
Fonksiyon Kullanma Mantığı
Fonksiyonlar genellikle, sürekli tekrar eden işleri bir rutin haline getirmek için kullanılmaktadır. Programlamada çok önemli bir yer tutar.
Her programlama dilinde olduğu gibi PHP de de programcı kendi fonksiyonlarını yazar. Fakat dile özel tanımlanmış çok sayıda fonksiyon vardır. Neredeyse herşey fonksiyonlar ile yapılmaktadır. En basitinden, ekrana yazdırma komutu olan print bile bir fonksiyondur.
Teorikte fonksiyon kullanmanız şart değildir, fonksiyon kullanmadan da istediğiniz herşeyi yapabilirsiniz. Ama fonksiyon kullanmak, siz de takdir edeceksiniz ki size hız ve zaman kazandıracaktır.
Fonksiyon Tanımlama
Aşağıdaki syntax (sözdizim) ile bir fonksiyon tanımlayabilirsiniz.
1
2
3
| function isim() { // Fonksiyonun içindeki işlemler... } |
En basit fonksiyon prototipi yukarıdaki gibi olmalıdır.
Ekrana “Hell World” yazan bir fonksiyon;
1
2
3
| function hello() { echo "Hello World !" ; } |
Fonksiyon prototipleri her zaman bu kadar basit ve sade olmayabilir. Bir fonksiyona parametre gönderebilir veya fonksiyondan değer döndürebilirsiniz.
Fonksiyon Çeşitleri
Bir gruplandırma yapmak gerekirse aşağıdaki gibi yapabiliriz.
- Değer alan fonksiyonlar
- Değer döndüren fonksiyonlar
- Değer alan ve değer döndüren fonksiyonlar
- 1- Değer Alan Fonksiyonlar
Aşağıdaki fonksiyon 2 parametre alarak toplama işlemi yapar ve ekrana yazar.
1
2
3
4
5
| function topla( $a , $b ) { $sonuc = $a + $b ; echo $sonuc ; } topla(10,40); |
Topla fonksiyonu 2 parametre alan bir fonksiyondur, fonksiyona gönderilen ilk değeri (10 değerini) $a değişkeni alır ve fonksiyon içerisinde kullanılır. İkinci değeri ise $b değişkeni tutar. Burada $a ve $b değişkenleri local değişkenler olarak adlandırılırlar. Local değişkenler sadece fonksiyon içinde kullanılabilirler, fonksiyonun dışında geçersiz olacaklardır, fakat fonksiyon dışında kullandığınızda hata mesajı üretilmeyecektir.
Parametre alan fonksiyonlarda alınan parametreye ilk değere atama işlemi de gerçekleştirilebilir.
function topla($a=100,$b=200) { /*...*/ }
Bu durumda eğer fonksiyona değer gönderilmezse, ilk değer olarak atadığımız değerlerle işlem yapılacaktır. Yani fonksiyon topla(); şeklinde çağrılırsa ekrana 300 yazılacaktır.
2- Değer Döndüren Fonksiyonlar
Bir diğer fonksiyon tipide geriye değer döndüren fonksiyon tipidir. Bu fonksiyonlarda, fonksiyon geriye bir değer döndürdüğünden, geriye dönen değeri alıp kullanmak gerekir.
1
2
3
4
5
6
7
8
| function topla() { $a = 10; $b = 40; return $a + $b ; } $sonuc = topla(); echo $sonuc ; ?> |
Burada geriye dönen değeri $sonuc adlı bir değişkenin içine attık ve sonra bu değişkeni echo komutu ile ekrana yazdırdık. Kısa yoldan ;
echo topla();
3- Değer Alan ve Değer Döndüren Fonksiyonlar
Parametre alan ve geriye değer döndüren fonksiyonlara faktöriyel alan program üzerinden bakınız.
1
2
3
4
5
6
7
8
9
10
| function faktoriyel( $sayi ) { $sonuc = 1; for ( $i =1; $i <= $sayi ; $i ++) { $sonuc *= $i ; } return $sonuc ; } echo faktoriyel(4) . "<br/>" ; echo faktoriyel(5) . "<br/>" ; echo faktoriyel(6); |
Recursive Fonksiyonlar
Recursive fonksiyonlar, kendilerini çağıran fonksiyonlardır. fonksiyon return kısmında kendini çağırmaktadır. Dolayısıyla bu işlem sonsuza kadar devam edecektir, ta ki siz bir kısıtlama koyana kadar. Faktöriyel programını recursive bir fonksiyon ile şu şekilde yapabilirsiniz;
1
2
3
4
5
6
7
| function faktoriyel( $sayi ) { if ( $sayi >=1) { return $sayi * faktoriyel( $sayi -1); } if ( $sayi <1) { return 1; } } echo faktoriyel(4) . "<br/>" ; echo faktoriyel(5) . "<br/>" ; echo faktoriyel(6); |
Bazı durumlarda kodu çok kısaltabilen recursive fonksiyonları daha detaylı incelemek için şuradakiyazıma bakabilirsiniz.
Fonksiyon Bilgilerini Elde Etme
Yazdığınız fonksiyonlara ilişkin bilgileri alabilen bir fonksiyon kümesi PHP de kendiliğinden vardır. Bu kısımda onlardan birkaçına değineceğim.
function_exists fonksiyonu, bir fonksiyonun daha önceden tanımlanıp tanımlanmadığını kontrol eder.Fonksiyonun varlığını test eder. Geriye true veya false değeri döndürür.
1
2
3
4
5
| if (function_exists(faktoriyel)) { echo "Fonksiyon tanımlanmış" ; } else { echo "Fonksiyon tanımlanmamış" ; } |
func_get_args fonksiyonu, bir fonksiyona atanan parametrelerin listesini döndürür. Fonksiyonunu içinde kullanmalısınız.
func_get_arg fonksiyonu, istenilen parametreye ulaşmanızı sağlar. Yine fonksiyon içinde kullanmalısınız.
func_num_args fonksiyonu ise bir fonksiyona atanan parametrelerin sayısını döndürür.
Bu 3 fonksiyonla ilgili şu örneğe bakabilirsiniz;
1
2
3
4
5
6
7
| function carpma( $a , $b , $c ) { $parametreler = func_get_args(); $ikinci_param = func_get_arg(2); $param_sayisi = func_num_args(); return $a * $b * $c ; } echo "Sonuç : " . carpma(4,5,6); |
Görüldüğü gibi bu fonksiyonlar işlem yapılacak fonksiyonun içinde kullanılmalıdır.
0 yorum