Değerler, kullanımı seçime bağlı olan return deyimi kullanılarak döndürülür. Her türde değer döndürülebilir, buna diziler ve nesneler dahildir. return kullanıldığında işlevin çalışması o noktada hemen durdurulur ve denetim işlevin çağrıldığı satıra aktarılır. Daha ayrıntılı bilgi için return bölümüne bakınız.
Bilginize:
return belirtilmezse
NULL
değeri döner.
return
kullanımı
Örnek 1 - return
kullanımı
<?php
function square($num)
{
return $num * $num;
}
echo square(4); // '16' çıktılar.
?>
Bir işlevden birden fazla değer döndüremezsiniz, ancak böyle bir sonucu bir dizi döndürülerek elde edebilirsiniz.
Örnek 2 - Bir diziyle birden fazla değerin döndürülmesi
<?php
function küçük_sayılar()
{
return array (0, 1, 2);
}
list ($sıfır, $bir, $iki) = küçük_sayılar();
?>
Bir işlevden gönderimli bir değer döndürmek için, & işlecini hem işlev bildiriminde hem de dönen değeri bir değişkene atarken kullanmalısınız:
Örnek 3 - Bir işlevden gönderimli değer döndürmek
<?php
function &gönderimli_döndür()
{
return $gönderim;
}
$yenigönderim =& gönderimli_döndür();
?>
Gönderimler hakkında daha fazla bilgi edinmek için Gönderimler Hakkında bölümüne bakınız.
PHP 7'de dönen tür bildirimleri desteği eklenmiştir. Değiştirge türünde bildirimlere benzer şekilde, dönen tür bildirimlerinde değerin türünü bir işlevden dönen değerin türü belirler. Dönen tür belirtimlerinde kullanılabilen türler değiştirge türü bildirimlerdeki türlerle aynıdır.
Kesin tür belirtimi dönen tür belirtimlerini de etkiler. Öntanımlı zayıf kipte, dönen türler istenen türde değilse doğru türe zorlanır. Kesin tipte ise dönen değer doğru türde değilse TypeError istisnası oluşur.
Bilginize:
Bir ebeveyn yöntem geçersizleştirilirken çocuğun yönteminin ebeveyn üstündeki dönen tür bildirimiyle eşleşmesi gerekir. Eğer ebeveyn bir dönen tür tanımlamıyorsa çocuğun yöntemi de öyle yapabilir.
Örnek 4 Temel dönen tür bildirimi
<?php
function sum($a, $b): float {
return $a + $b;
}
// float döneceğini unutmayın.
var_dump(sum(1, 2));
?>
Yukarıdaki örneğin çıktısı:
float(3)
Örnek 5 Kesin kip işe karışırsa
<?php
declare(strict_types=1);
function sum($a, $b): int {
return $a + $b;
}
var_dump(sum(1, 2));
var_dump(sum(1, 2.5));
?>
Yukarıdaki örneğin çıktısı:
int(3) Fatal error: Uncaught TypeError: Return value of sum() must be of the type integer, float returned in - on line 5 in -:5 Stack trace: #0 -(9): sum(1, 2.5) #1 {main} thrown in - on line 5
Örnek 6 Bir nesne döndürmek
<?php
class C {}
function getC(): C {
return new C;
}
var_dump(getC());
?>
Yukarıdaki örneğin çıktısı:
object(C)#1 (0) { }