PHP 8'de fonksiyonlardan değer döndürmek, önceki sürümlerde olduğu gibi return
anahtar kelimesi ile yapılır. Fonksiyonlar, bir işlem gerçekleştirdikten sonra sonuçlarını döndürebilir ve bu sonuç başka yerlerde kullanılabilir. PHP 8'de geri dönüş tipi belirleme ve yeni özelliklerle fonksiyonlardan değer döndürme daha güçlü hale gelmiştir.
1. Temel Değer Döndürme
Bir fonksiyon, return
anahtar kelimesi ile çağrıldığı yere bir değer döndürebilir. Fonksiyon içindeki return
ifadesi çalıştığı anda fonksiyon sona erer.
Örnek:
<?php
function topla(
$a, $b
) {
return $a + $b; // Toplam sonucu döndürülüyor
}
$sonuc = topla(5, 10); // $sonuc = 15
echo $sonuc; // Çıktı: 15
?>
Bu örnekte, topla()
fonksiyonu iki sayıyı toplar ve sonucu geri döndürür.
2. Geri Dönüş Tipi Belirleme (Return Type Declaration)
PHP 8'de fonksiyonun hangi veri tipinde değer döndüreceği belirtilerek, daha güvenli ve hatasız bir kod yazılabilir. :
işareti kullanılarak geri dönüş tipi tanımlanır.
Örnek (Belirli Tip Geri Dönüş):
<?php
function carp(
int $a, int $b
): int {
return $a * $b;
}
echo carp(4, 5); // Çıktı: 20
?>
Bu örnekte, carp()
fonksiyonunun int
türünde bir değer döndürmesi gerektiği belirtilmiştir. Eğer farklı bir türde değer döndürülmeye çalışılırsa, PHP bir hata verir.
Örnek (Farklı Veri Tipi Döndürme):
<?php
function selamVer(
): string {
return "Merhaba!";
}
echo selamVer(); // Çıktı: Merhaba!
?>
Bu fonksiyon bir string
veri tipi döndürecektir.
3. Union Types (Birden Fazla Veri Tipi Döndürme)
PHP 8 ile gelen union types özelliği, fonksiyonların birden fazla veri türü döndürebileceği durumlarda kullanılır. Fonksiyon, birden fazla tip arasında herhangi birini döndürebilir.
Örnek:
<?php
function topla(
int|float $a, int|float $b
): int|float {
return $a + $b;
}
echo topla(5, 2.5); // Çıktı: 7.5
?>
Bu fonksiyon hem int
hem de float
türünde değerler alıp, aynı türde geri döndürebilir.
4. Hiçbir Şey Döndürmeyen Fonksiyonlar (void)
Bazen bir fonksiyon, sadece bir işlem yapar ama herhangi bir değer döndürmez. Böyle durumlarda geri dönüş tipi void
olarak tanımlanabilir. void
döndüren fonksiyonlar return
ifadesi kullanmazlar, ancak işlemi erken bitirmek için return;
ifadesi yazılabilir.
Örnek:
<?php
function ekranaYazdir(
string $mesaj
): void {
echo $mesaj;
}
ekranaYazdir("Bu bir mesajdır."); // Çıktı: Bu bir mesajdır.
?>
Bu fonksiyon, bir değer döndürmez, sadece bir mesajı ekrana yazdırır.
5. Değer Döndürmeden Fonksiyondan Çıkış (Early Return)
Bir fonksiyon, belirli bir koşula göre erken çıkmak ve döndürmek için return
ifadesini kullanabilir. Bu sayede, işlem sırasında belirli koşullar karşılandığında fonksiyon işlemi sonlandırılır.
Örnek:
<?php
function kontrolEt(
$sayi
) {
if ($sayi < 0) {
return "Negatif sayı"; // Negatifse erken dön
}
return "Pozitif sayı"; // Aksi halde devam
}
echo kontrolEt(5); // Çıktı: Pozitif sayı
echo kontrolEt(-3); // Çıktı: Negatif sayı
?>
Bu fonksiyon, negatif bir sayı verildiğinde işlemi durdurur ve erken çıkar.
6. Diziler ve Nesneleri Döndürme
PHP'de fonksiyonlar diziler, nesneler gibi karmaşık veri yapılarını da döndürebilir.
Dizi Döndürme Örneği:
<?php
function bilgileriGetir(
): array {
return ["isim" => "Ali", "yas" => 25];
}
$bilgiler = bilgileriGetir();
echo $bilgiler["isim"]; // Çıktı: Ali
?>
Nesne Döndürme Örneği:
<?php
class Kisi {
public $isim;
public
function __construct(
$isim
) {
$this->isim = $isim;
}
}
function kisiOlustur(
$isim
): Kisi {
return new Kisi($isim);
}
$kisi = kisiOlustur("Ayşe");
echo $kisi->isim; // Çıktı: Ayşe
?>
7. Anonim Fonksiyonlardan Değer Döndürme
Anonim fonksiyonlar da değer döndürebilir ve bu değerler başka yerlerde kullanılabilir.
Örnek:
<?php
$topla =
function(
$a, $b
) {
return $a + $b;
};
echo $topla(3, 7); // Çıktı: 10
?>
Sonuç
PHP 8'de fonksiyonlardan değer döndürme, return
anahtar kelimesi ile gerçekleştirilir. Geri dönüş tipi belirleme (return type hinting), birden fazla veri tipi döndürme (union types) ve void
döndürme gibi yeni özelliklerle fonksiyonlar daha güçlü hale gelmiştir. Bu özellikler, daha güvenli ve hatasız kod yazmaya olanak sağlar.