Php 8 Fonksiyondan Değer Döndürme

Php 8 Fonksiyondan Değer Döndürme


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.



Yorum Ekle

Üzerine gel