PHPde fonksiyon kullanmak ve yazmak

Fonksiyon, tekrar eden işlemlerde kullanabileceğiniz bir yapıdır. Tekrar edecek kodun her işlem için yeniden yazılması yerine bir defa fonksiyon olarak yazılıp her yerde kullanılabilir. PHP'de fonksiyonlar; veritabanı okuma-yazma, form kontrolleri, metin işlemleri ve benzeri işlemlerde oluşturulup, kullanılabilirler; lakin PHP ile birlikte gelen pekçok fonksiyon ve eklentilerle(extension) kullanılabilecek çok sayıda fonksiyon ve destek vardır
PHPde fonksiyon kullanmak ve yazmakFonksiyonları Çağırmak

Aşağıdaki satır en basit fonksiyon çağrısıdır; 
fonksiyon_adi();
 
Bu kullanım, çağrılacak fonksiyonun parametre sayısına göre değişebilir;      
fonksiyon_adi(parametre1,parametre2);
  
$dosya = "cache.txtCh";
$streamModu = "r+";
$stream = fopen($dosya,$streamModu);

//file-stream fonksiyonlarından fopen'ın kullanımına bir örnek

Fonksiyon tanımlamak, Temel Fonksiyon Yapısı ve Optional Parametreler

Bir fonksiyonun yapısı ve kullanımı genel olarak aşağıdaki gibidir;
function merhabaDunya($kimDemis)
{

    echo "$kim merhaba dünya diyor";

}

merhabaDunya("baturay");
//baturay merhaba dünya diyor

merhabadunya("buyuk/kucuk harf duyarlılığı olmayan insan");
//buyuk/kucuk harf duyarlılığı olmayan insan merhaba dünya diyor 
 
İpucu: PHP'de fonksiyonlar parametre olarak değişken alabilmenin yanısıra, dizi değişkeni ve nesne gibi tipleri de kullanabilmektedir.

Önceki fonksiyonumuzu öntanımlı değeri olan parametre kullanarak yeniden şekillendirelim;

function merhabaDunya($kimDemis,$not="not bırakmamış")
{

    echo "$kim merhaba dünya diyor ve $not";

}

merhabaDunya("baturay");
//baturay merhaba dünya diyor ve not bırakmamış

merhabadunya("buyuk/kucuk harf duyarlılığı olmayan insan","java gibi değil demiş");
//buyuk/kucuk harf duyarlılığı olmayan insan merhaba dünya diyor ve java gibi değil demiş 

Kapsam

Fonksiyon içerisinde kullanılan değişkenler, global olarak tanımlanmadığı sürece fonksiyonu belirleyen küme parantezleri(blok) içerisinde geçerlidir ve dışarıdaki bir değişkenden bağımsızlardır.

$tepe = 100;

function tepeyleCakis()
{

    echo "Cakismamak icin minimum $tepe yukseklikten ucunuz";

}

tepeyleCakis();
//Cakismamak icin minimum  yukseklikten ucunuz
Örnekte de görebileceğiniz gibi fonksiyon bloğumuzdaki tepe değişkeni tanımsız ve içeriği olmayan bir değişken olduğu için ekran görüntüsünde global bloktaki $tepe değişkeninden etkilenmemiş, boş çıktı alınmıştır.


Referans ya da işaretçi kullanma

İşaretçiler, belirli bir bellek alanına(değişken) işaret etmek, o alanı referans göstermek için kullanılır ve bellekten tasarrufu sağlar. Bir değişkenin değerini alarak arttırıp yeniden atama yapmak yerine o değişkeni referans olarak gösterip direkt olarak onun içerisinde işlem yapmanızı sağlar.
function referanssiz($deger,$artis=1)
{

    $deger += $artis;

}

function referansli(&$deger,$artis=1)
{

    $deger+= $artis;

}

$alan = 12;
referanssiz($alan); //kendi içerisindeki deger değişkeni 1 artar. alan değişmez
echo $alan; //12
referansli($alan);  //deger alanına işaretçi ile referans alındığı için deger içeriği 1 artar
echo $alan; //13
 
Değer döndürmek

Bir fonksiyon belirli bir veri üzerinde çeşitli işlemler yapabilir, bu işlemler direkt olarak o veriyi etkileyebilir ya da fonksiyon kendini çağıran noktaya bir değer döndürebilecek şekilde yazılabilir. Bu return anahtar sözcüğü ile mümkündür.
 

function returnsuz()
{

    echo "ben direkt olarak işlem yapıyorum. değer falan döndürmem";

}

function returnlu()
{

    return "benim önümde bir değişken ya da yordam olmak zorunda yoksa havada kalırım ben";

}

returnsuz();
//ben direkt olarak işlem yapıyorum. değer falan döndürmem
$a = returnlu();
echo $a;
//benim önümde bir değişken ya da yordam olmak zorunda yoksa havada kalırım
echo returnlu()."ek metin";
//benim önümde bir değişken ya da yordam olmak zorunda yoksa havada kalırım ek metin
 
Recursive (kendini çağıran) fonksiyonlar

Aslında bir iteration(iterasyon, döngü) tekniği olan recursion fonksiyonlarda kullanılarak görevini icra eder.Kullanımı aşağıdaki gibidir;
function geri($giris)
{
    if(strlen($giris)>0) geri(substr($giris,1));
    echo substr($giris,0,1);
    return;
}

geri("baturay");
//kendini şu şekilde çağırmaya devam eder;
//geri("aturay");
//geri("turay");
//geri("uray");
//geri("ray");
//geri("ay"),
//geri("y");
//geri("");
  Aynı işlemi döngü ile yapan fonksiyon ise; 
function geri2($giris)
{
    for($i=1;$i<=strlen($giris);$i++)
    {
        echo substr($str,-$i,1);
    }
}
 
İçiçe fonksiyon kullanımı
function eksilt($ne)
{
    return $ne--;
}

function ikiArttir($ne)
{
    return $ne+2;
}

function kare($ne)
{
    return $ne*$ne;
}

$deger = 10;
echo kare(ikiArttir(eksilt($deger)));
//122

echo eksilt(kare(ikiArttir($deger)));
//143
  İçiçe fonksiyon kullanımında işlem her zaman en içteki fonksiyondan başlar. Dıştaki fonksiyona doğru devam eder. (Zincirleme)

Not: Hazırlanırken Alfa Yayınları PHP ve MySQL kitabından yararlanılmıştır. -- Baturay Daylak
Yorumunuzu Ekleyin


Yükleniyor...
Yükleniyor...