PHP 8'de fonksiyon tanımlama, önceki sürümlerle aynı yapıyı korur, ancak PHP 8 ile birlikte gelen bazı yeni özellikler ve geliştirmeler fonksiyonların daha esnek ve güçlü olmasını sağlamıştır. İşte PHP 8'de fonksiyon tanımlama ve bu konudaki önemli detaylar:
1. Temel Fonksiyon Tanımlama
Bir fonksiyon tanımlamak için function
anahtar kelimesi kullanılır. Fonksiyonlar, genellikle bir görev veya hesaplama yapmak için kullanılır ve gerektiğinde çağrılabilirler.
Örnek:
<?php
function selamVer(
) {
echo "Merhaba!";
}
selamVer(); // Çıktı: Merhaba!
?>
Bu basit fonksiyon, selamVer()
adıyla tanımlanmış olup çağrıldığında ekrana "Merhaba!" yazdırır.
2. Parametreli Fonksiyon Tanımlama
Fonksiyonlara parametre ekleyerek, dinamik olarak farklı değerlerle çalışmasını sağlayabilirsiniz. Parametreler, fonksiyon tanımlanırken parantez içine yazılır ve fonksiyon çağrıldığında bu parametrelere değerler atanır.
Örnek:
<?php
function selamla(
$isim
) {
echo "Merhaba, $isim!";
}
selamla("Ali"); // Çıktı: Merhaba, Ali!
selamla("Ayşe"); // Çıktı: Merhaba, Ayşe!
?>
3. Varsayılan Parametre Değerleri
PHP’de parametrelere varsayılan değerler atanabilir. Eğer fonksiyon çağrıldığında bu parametreler verilmezse varsayılan değerler kullanılır.
Örnek:
<?php
function selamla(
$isim = "Dünya"
) {
echo "Merhaba, $isim!";
}
selamla(); // Çıktı: Merhaba, Dünya!
selamla("Ali"); // Çıktı: Merhaba, Ali!
?>
Bu örnekte, selamla()
fonksiyonu çağrıldığında parametre verilmezse varsayılan olarak "Dünya" kullanılır.
4. Geri Dönüş Değerine Sahip Fonksiyonlar
Bir fonksiyon, işleme sonucunda bir değer döndürebilir. Bunun için return
anahtar kelimesi kullanılır.
Örnek:
<?php
function topla(
$a, $b
) {
return $a + $b;
}
$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.
5. Tip Belirleme (Type Hinting)
PHP 8'de fonksiyon parametrelerine ve geri dönüş değerlerine tip belirleyebilirsiniz. Bu, fonksiyonun sadece belirtilen veri tipleri ile çalışmasını sağlar ve olası hataları engeller.
Parametre Tipi:
<?php
function carp(
int $a, int $b
): int {
return $a * $b;
}
echo carp(4, 5); // Çıktı: 20
?>
Bu örnekte, carp()
fonksiyonu sadece int
türünde parametreler kabul eder ve int
türünde bir değer döner.
6. Union Types (Birden Fazla Tip Belirleme)
PHP 8'de, bir parametre veya geri dönüş için birden fazla veri tipi tanımlayabilirsiniz. Bu özellikle farklı türde verilerle çalışılması gerektiğinde faydalıdır.
Örnek:
<?php
function topla(
int|float $a, int|float $b
): int|float {
return $a + $b;
}
echo topla(5, 2.5); // Çıktı: 7.5
?>
Bu örnekte, topla()
fonksiyonu hem int
hem float
değerler alabilir ve geri dönüş tipi de bu türlerden biri olabilir.
7. Anonim Fonksiyonlar (İsimsiz Fonksiyonlar)
Anonim fonksiyonlar, bir değişkene atanabilen veya başka bir fonksiyona parametre olarak verilebilen isimsiz fonksiyonlardır.
Örnek:
<?php
$topla =
function(
$a, $b
) {
return $a + $b;
};
echo $topla(3, 7); // Çıktı: 10
?>
Bu örnekte, topla
adlı değişken bir fonksiyona atanmıştır ve gerektiğinde çağrılabilir.
8. Ok Fonksiyonları (Arrow Functions)
PHP 7.4 ile gelen arrow functions (ok fonksiyonları), anonim fonksiyonların daha kısa bir yazımıdır. PHP 8'de bu fonksiyonlar yaygın olarak kullanılır.
Örnek:
<?php
$carp =
fn(
$a, $b
) => $a * $b;
echo $carp(4, 5); // Çıktı: 20
?>
Bu ok fonksiyonu, anonim fonksiyonlarla aynı işlevi görür ancak daha sade ve kısa bir yazıma sahiptir.
9. Adlandırılmış Argümanlar (Named Arguments)
PHP 8 ile gelen adlandırılmış argümanlar, argümanların sıraya bağlı kalmadan isimlerine göre verilmesine olanak tanır.
Örnek:
<?php
function bilgi(
$isim, $yas, $sehir
) {
echo "$isim, $yas yaşında ve $sehir'de yaşıyor.";
}
bilgi(yas: 25, sehir: "Ankara", isim: "Ayşe"); // Çıktı: Ayşe, 25 yaşında ve Ankara'da yaşıyor.
?>
10. Sınırsız Sayıda Argüman (Variadic Functions)
Bir fonksiyon, ...
operatörü ile sınırsız sayıda argüman alabilir. Bu argümanlar bir dizi olarak işlenir.
Örnek:
<?php
function topla(...$sayilar
) {
return array_sum($sayilar);
}
echo topla(1, 2, 3, 4); // Çıktı: 10
?>
Sonuç
PHP 8'de fonksiyon tanımlama, önceki sürümlere kıyasla daha esnek ve güçlü hale gelmiştir. Yeni eklenen özellikler (union types, named arguments, arrow functions) fonksiyonları daha kullanışlı hale getirirken, kod okunabilirliğini ve güvenilirliğini artırmaktadır.