PHP 8'de fonksiyonlar, önceki sürümlerle büyük ölçüde aynı işlevselliğe sahiptir, ancak bazı yeni özellikler ve geliştirmeler eklenmiştir. İşte PHP 8'de fonksiyonlar ile ilgili önemli konular:
1. Fonksiyon Tanımlama
PHP'de bir fonksiyon, function
anahtar kelimesi ile tanımlanır. İşte basit bir fonksiyon tanımı:
<?php
function selam(
) {
echo "Merhaba!";
}
selam(); // Çıktı: Merhaba!
?>
2. Parametreli Fonksiyonlar
Bir fonksiyona parametreler verebiliriz. Parametreler, fonksiyon çağrılırken dışarıdan gelen değerlerdir.
<?php
function selamla(
$isim
) {
echo "Merhaba, $isim!";
}
selamla("Ali"); // Çıktı: Merhaba, Ali!
?>
3. Varsayılan Parametre Değerleri
PHP'de bir parametreye varsayılan bir değer atanabilir. Eğer fonksiyon çağrılırken bu parametre verilmezse, varsayılan değer kullanılır.
<?php
function selamla(
$isim = "Dünya"
) {
echo "Merhaba, $isim!";
}
selamla(); // Çıktı: Merhaba, Dünya!
selamla("Ayşe"); // Çıktı: Merhaba, Ayşe!
?>
4. Geri Dönüş Değeri Olan Fonksiyonlar
Bir fonksiyon sonuç döndürebilir. return
anahtar kelimesi ile dönen değer çağırıldığı yere geri iletilir.
<?php
function topla(
$a, $b
) {
return $a + $b;
}
$sonuc = topla(5, 10); // $sonuc = 15
echo $sonuc;
?>
5. Tip Belirleme (Type Hinting)
PHP 8’de parametreler ve geri dönüş değerleri için veri tipi belirlenebilir. Bu özellik, daha hatasız ve güvenilir kod yazmaya olanak tanır.
Parametre ve Geri Dönüş Tip Belirleme:
<?php
function carp(
int $a, int $b
): int {
return $a * $b;
}
echo carp(4, 5); // Çıktı: 20
?>
6. Union Types (Birden Fazla Tip Desteği)
PHP 8, bir fonksiyon parametresine veya geri dönüşüne birden fazla veri tipi tanımlama desteği ekledi. Bu özellik ile bir parametre hem int
hem float
olabilir.
<?php
function topla(
int|float $a, int|float $b
): int|float {
return $a + $b;
}
echo topla(5, 2.5); // Çıktı: 7.5
?>
7. Anonim Fonksiyonlar (İsimsiz Fonksiyonlar)
Anonim fonksiyonlar, bir fonksiyon ismi tanımlamadan fonksiyon oluşturmaya olanak tanır. Genellikle callback işlemleri için kullanılır.
<?php
$topla =
function(
$a, $b
) {
return $a + $b;
};
echo $topla(3, 7); // Çıktı: 10
?>
8. Ok Fonksiyonları (Arrow Functions)
PHP 7.4 ile tanıtılan arrow functions (ok fonksiyonları), anonim fonksiyonların daha kısa bir versiyonudur. PHP 8’de sıkça kullanılır. Kapsam dışındaki değişkenlere use
anahtar kelimesi gerekmeden erişebilir.
<?php
$carp =
fn(
$a, $b
) => $a * $b;
echo $carp(4, 5); // Çıktı: 20
?>
9. Değişken Fonksiyonlar
PHP'de fonksiyon isimlerini değişken olarak tutabilir ve bu değişkenle fonksiyon çağırabilirsiniz.
<?php
function merhaba(
) {
echo "Merhaba!";
}
$fonksiyon = "merhaba";
$fonksiyon(); // Çıktı: Merhaba!
?>
10. Adlandırılmış Argümanlar (Named Arguments)
PHP 8 ile gelen adlandırılmış argümanlar sayesinde, fonksiyon argümanlarını isimlerine göre verebilirsiniz. Bu, özellikle çok sayıda parametreye sahip fonksiyonlarda okunabilirliği artırır.
<?php
function bilgi(
$isim, $yas, $sehir
) {
echo "$isim, $yas yaşında ve $sehir'de yaşıyor.";
}
bilgi(sehir: "İstanbul", isim: "Ali", yas: 30); // Çıktı: Ali, 30 yaşında ve İstanbul'da yaşıyor.
?>
11. Sınırsız Sayıda Argüman (Variadic Functions)
Bir fonksiyonun kaç tane argüman alacağını önceden bilmek zorunda değilsiniz. ...
operatörü ile sınırsız sayıda argüman alabilirsiniz.
<?php
function topla(...$sayilar
) {
return array_sum($sayilar);
}
echo topla(1, 2, 3, 4); // Çıktı: 10
?>
12. İç Fonksiyonlar
PHP, geniş bir iç fonksiyon kütüphanesine sahiptir. Örneğin, dizilerle çalışmak için kullanılan fonksiyonlar, string fonksiyonları, matematiksel işlemler vb.
<?php
$sayilar = [1, 2, 3, 4, 5];
echo count($sayilar); // Çıktı: 5 (Array'in eleman sayısı)
?>
Sonuç
PHP 8'de fonksiyonlar, yeni eklenen özelliklerle daha güçlü ve esnek bir hale gelmiştir. Özellikle adlandırılmış argümanlar, union types ve arrow functions gibi yenilikler kod yazmayı hem daha esnek hem de daha güvenilir hale getirir.