Yazılımın yapı taşlarından biri de fonksiyonlardır. Neredeyse her yazılım dilinde fonksiyonların kullanımı benzerdir. Bu benzerliğin avantajlarından biri de diğer dilleri öğrenmeyi kolaylaştırmasıdır.
Yazı İçeriği
Fonksiyon Nedir?
Örneğin bir kod yazarken yazdığınız komutu sürekli olarak tekrar etmek zorunda kalıyorsanız fonksiyonlar tam burada devreye giriyor. Çünkü bir fonksiyon sizin aynı işlemi defalarca kez yapmamanızı sağlıyor. Ve size büyük bir zaman kazandırıyor.
Fonksiyon Kullanım Örnekleri
Fonksiyon oluşturmak basit olsa da kendi içinde bir derinliği de vardır. Öncelikle bir fonksiyonu nasıl oluşturacağımızı inceleyelim.
1 function merhaba() {
2 echo 'Merhaba!' ;
3 }
Burada ‘merhaba’ şeklinde bir fonksiyon oluşturduk.Ancak bu kodu çalıştırmayı denersek ekrandan bir çıktı alamayız. Çünkü yalnızca bir fonksiyon oluşturduk. Bu fonksiyonu çalıştırmak için çağırmamız gerek.
Fonksiyonumuzun altına merhaba(); yazarsak fonksiyonumuzu çağırmış oluruz ve ekranda Merhaba! yazar.
İşte bir başka örnek daha :
1 function rakamlar ( ) {
2 for($sayi = 0 ; $sayi<10; $sayi++) {
3 echo $sayi;
4 }
5 }
6
7 rakamlar (); // oluşturduğumuz fonksiyonu çağıralım
Bu fonksiyondan sonra ekranımızda bütün rakamların 0123456789 şeklinde olduğunu göreceğiz.
Fonksiyonlara Parametre Ekleme
Örneklerde oluşturduğumuz fonksiyonlar dışarıdan bir veri almadan çalıştırılacak fonksiyonlardı. Bu fonksiyonlara parametreler ekleyerek farklı kullanımlar yaratabiliriz.
1 function cikar($sayi1, $sayi2) {
2 $sonuc = $sayi1 - $sayi2;
3 echo $sonuc;
4 }
5
6 cikar(10, 5 );
Burada cikar adında fonksiyon oluşturduk. Bu fonksiyona iki tane de parametre ekledik. $sayi1 , $sayi2 parametreleri de bizim fonksiyonumuzdaki değişkenlerin ismi olacaktır.
Eğer cikar(10, 5) dersek ekranımızda 5 yazacaktır. Bizim $sayi1 değişkenimiz 10’a $sayi2 değişkenimiz de 5’e eşit olacaktır. Ve parametremiz bu iki değeri birbirinden çıkaracaktır.
Parametrelere Varsayılan Değer Verme
Parametreli bir fonksiyon yaptığımızda hata vermeden başarılı olması için tüm parametrelerin yazılması gerekir. Örneğin yukarıda verdiğimiz cikar fonksiyonunu cikar(1); olarak yazdığımızda PHP çalışmayacaktır.
Bunun sebebi fonksiyonu iki adet parametreyle çalışması için hazırladık. Fakat bu hataları da değiştirebiliriz. Çünkü parametrelerimize varmayan değerler atayıp parametresiz çalışmalarını başarabiliriz.
Öyleyse varsayılan parametreli fonksiyon oluşturalım:
1 function hosgeldin($isim = 'Misafir' ) {
2 echo 'Hoşgeldin ' . $isim . ' ! ' ;
3 }
4
5 hosgeldin( );
6 hosgeldin( 'Serhat' );
Yukarıda verdiğimiz örnekte hosgeldin() fonksiyonunu önce parametresiz daha sonra parametreli halde kullandık. Burada fonksiyonun parametresini tanımladığımızda hosgeldin($isim=’misafir’) halinde parametreye varsayılan değer koyduğumuz için doldurmadığımızda o parametreye bu değeri verecektir. Yani ekranımızın çıktısı:
Hoşgeldin Misafir!
Hoşgeldin Serhat! şeklinde olacaktır.
Return ile Sonuç Atama
Şu ana kadar yaptığımız her örnekte fonksiyon sonuçlarımızı echo ifadesiyle yazdık. Biz bu fonksiyonların tamamını ekranımıza yazdırmak için kullanmıştık. Ancak şimdi sonuçlarımızı ekrana yazdırmak yerine başka bir değişkene atamak istiyoruz. Bunun için de return kullanacağız.
Return sayesinde sonucumuzu dışa aktarırız. Örneğin:
1 function cikar($sayi1, $sayi2) {
2 $sonuc = $sayi1 - $sayi2;
3 return $sonuc;
4 }
5
6 $hesap = cikar(10, 20);
7 echo 'Fonksiyon ile çıkarma yaptık ve sonuc: ' . $hesap;
Buradaki örnekteki gibi bu defa da aynı cikar() fonksiyonuyla beraber echo yerine return yazdırdık. Bu yaptığımız işlem de fonksiyonumuzun sonucunu ona sabitlediğimiz bir değişkene atamış oldu. Sonuç olarak fonksiyon toplama işlemini yaptı ve sonucu $hesap değişkenine aktardı. Biz de bunu echo ifadesiyle birlikte ekranımıza yazdırmış olduk.
Bir Fonksiyonda Global İfadesinin Kullanımı
PHP’de fonksiyonlarda tanımladığımız değişkenler dışarı gönderilmez. Bu halde dışarıda tanımlamış olduğumuz değişken de fonksiyon içinde de görülmez. O halde fonksiyonlara başka bir dünya diyebiliriz. Buna da örnek verelim:
1 function deneme( ) {
2 $isim = 'Serhat' ;
4
5 deneme ( ) ;
6 echo $isim;
Bu kodumuzu çalıştırmayı denersek PHP çalışmayacaktır. Çünkü biz de isim adında bir değişken yoktur. Biz $isim değişkenini bir fonksiyona yerleştirdik. Buradan dışarı aktarabilmemiz için de return kullanıyoruz.
Fonksiyonumuza global bir değişken çağıracaksak global ifadesi eklemeliyiz.
1 $isim = 'Serhat' ;
2
3 function selam( ) {
4 global $isim; // dışarıda tanımlanan bir değişkeni fonksiyon içine aldık
5 echo 'Selam' . $isim;
6 }
7
8 selam( );
Bunu yaptıktan sonra ekranımızda Selam Serhat! yazacaktır.
Bir Fonksiyonda Referans ile Değer Atama
Return kelimesini kullanarak değer verme işlemi yaparken fonksiyonun en başındaki değişkeni ona vermek amacıyla (=) işareti atamasını kullanmalıyız. Ancak fonksiyonlarda, sıralama yapan fonksiyonları (sort(),rsort()) olarak yazmamıştık.
Referans vermek istediğimiz değişkenimizin başına (&) işareti koyarız. Bunu yerleştirdiğimiz parametreler dışarıdan verilecek olan değişkenlerle değişim gösterirler.
1 function topla(&$sayi) {
2 $sayi = $sayi +10;
3 }
4
5 $x = 10;
6 topla($x);
7 echo $x;
Sonuç olarak ekranımızda 20 ifadesi yazacaktır.