İşlevler
PHP Manual

İşlev değiştirgeleri

Bir işleve veri, virgül ayraçlı ifadelerden oluşan bir değiştirge listesi ile aktarılır.

PHP, değiştirgelerin değerleriyle aktarılmalarını (öntanımlı), gönderimli aktarımı ve öntanımlı değiştirge kullanımını destekler. Değiştirge sayısı değişken işlevler de desteklenmektedir; daha ayrıntılı bilgi edinmek için func_num_args(), func_get_arg() ve func_get_args() işlevlerini de inceleyiniz.

Örnek 1 - İşlevlere dizi aktarımı

<?php
function dizi_kabul_eder($girdi)
{
    echo 
"$girde[0] + $girdi[1] = "$girdi[0]+$girdi[1];
}
?>

Gönderimli değiştirge kullanımı

Öntanımlı olarak, işlev değiştirgeleri değerleriyle aktarılırlar (bu durumda bir değiştirgenin değeri işlev içinde değiştirildiğinde işlevin çağrıldığı yerdeki değeri bundan etkilenmez. İşlevin çağrıldığı yerdeki değerinin de değişmesini istiyorsanız gönderimli değiştirge kullanmalısınız.

Bir işleve bir değiştirgenin daima gönderimli olarak aktarılmasını istiyorsanız, işlev tanımladığınız yerde o değiştirgenin başına & karakterini koyarak bunu sağlayabilirsiniz:

Örnek 2 - Gönderimli işlev değiştirgelerinin aktarımı

<?php
function şunu_da_ekle(&$dizge)
{
    
$dizge .= 've bir kaç karakter eklenmiştir.';
}
$dzg 'Bu bir dizgedir ';
şunu_da_ekle($dzg);
echo 
$dzg;    // 'Bu bir dizgedir ve bir kaç karakter eklenmiştir.'
              //  çıktısını verir.
?>

Öntanımlı değiştirge değerleri

Bir işlevde, sayıl değiştirgeler için C++ tarzı öntanımlı değerler aşağıdaki biçimde tanımlanabilir:

Örnek 3 - İşlev içinde öntanımlı değiştirge kullanımı

<?php
function kahveyap($hangisi "orta şekerli")
{
    return 
"Bir fincan $hangisi kahve yapalım.\n";
}
echo 
kahveyap();
echo 
makecoffee(null);
echo 
kahveyap("az şekerli");
?>

Yukarıdaki örneğin çıktısı:

Bir fincan orta şekerli kahve yapalım.
Bir fincan kahve yapalım.
Bir fincan az şekerli kahve yapalım.

PHP ayrıca, öntanımlı değer olarak dizilerin ve özel NULL türünün kullanımına da izin verir, örneğin:

Örnek 4 - Sayıl olmayan türlerin öntanımlı değer olarak kullanımı

<?php
function kahveyap($hangi = array("orta şekerli"), $neyde NULL)
{
    
$neyde is_null($neyde) ? "ocakta" $neyde;
    return 
"Bir fincan ".join(" bir fincan "$hangi)." kahve $neyde yapıldı.\n";
}
echo 
kahveyap();
echo 
kahveyap(array("çok şekerli""az şekerli"), "mangalda");
?>

Öntanımlı değer bir değişken, bir sınıf üyesi ya da bir işlev çağrısı değil, bir sabit ifadesi olmalıdır.

Öntanımlı değiştirgeleri kullanırken, öntanımlama yapılmış tüm değiştirgelerin öntanımlama yapılmamış tüm değiştirgelerin sağında yer almasına gerektiğine dikkat edin. Aksi takdirde işler yolunda gitmeyebilir. Aşağıdaki kod parçasını inceleyin:

Örnek 5 - Öntanımlı değiştirgelerin hatalı kullanımı

<?php
function yoğurtyap($nekadar "az"$neli)
{
    return 
"Bir kase $nekadar $neli yoğurt yap.\n";
}

echo 
yoğurtyap("çilekli");   // beklendiği gibi çalışmayacaktır
?>

Yukarıdaki örneğin çıktısı:

Warning: Missing argument 2 for yoğurtyap(), called in
/home/nilgun/dnm/php-dnm on line 7 and defined in
/home/nilgun/dnm/php-dnm on line 2
Bir kase çilekli  yoğurt yap.

Şimdi, yukarıdakini bununla karşılaştıralım:

Örnek 6 - Öntanımlı değiştirgelerin doğru kullanımı

<?php
function yoğurtyap($neli$nekadar"az")
{
    return 
"Bir kase $nekadar $neli yoğurt yap.\n";
}

echo 
yoğurtyap("çilekli");   // beklendiği gibi çalışır
?>

Yukarıdaki örneğin çıktısı:

Bir kase az çilekli yoğurt yap.

Bilginize: PHP 5'den itibaren, öntanımlı değerler gönderimli aktarılabilmektedir.

Değiştirge sayısı değişken işlevler

PHP 4 ve sonrasında, değiştirge sayısı değişken kullanıcı tanımlı işlevler desteklenmektedir. func_num_args(), func_get_arg() ve func_get_args() işlevleri sayesinde bu özelliği kolayca kullanabilirsiniz.

Özel bir sözdizimi gerekli değildir, değiştirge listesini işlev tanımında açıkça belirtirseniz normal davranışını gösterecektir.


İşlevler
PHP Manual