PHP 8'de fonksiyonlara parametre gönderme, önceki sürümlerde olduğu gibi işlev görür, ancak PHP 8 ile birlikte gelen bazı yeni özellikler ve iyileştirmeler, parametre kullanımını daha esnek hale getirmiştir. Parametreler, fonksiyonlara dinamik veri iletmek için kullanılır. Fonksiyon çağrıldığında parametreler sağlanır ve fonksiyonun içinde kullanılır.
1. Temel Parametre Kullanımı
PHP'de bir fonksiyon tanımlarken, parantez içinde belirtilen değişkenler parametre olarak adlandırılır. Bu parametreler, fonksiyon çağrıldığında belirli değerler alır.
Örnek:
<?php
function selamla(
$isim
) {
echo "Merhaba, $isim!";
}
selamla("Ali"); // Çıktı: Merhaba, Ali!
selamla("Ayşe"); // Çıktı: Merhaba, Ayşe!
?>
Bu örnekte, selamla()
fonksiyonuna bir isim
parametresi gönderilir. Fonksiyon çağrıldığında, bu parametre ilgili değeri alır ve fonksiyon içinde kullanılır.
2. Varsayılan Parametre Değerleri
Bir fonksiyon tanımlarken, parametrelere varsayılan değerler atanabilir. 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("Mehmet"); // Çıktı: Merhaba, Mehmet!
?>
Bu örnekte, selamla()
fonksiyonu çağrılırken herhangi bir parametre verilmezse varsayılan olarak "Dünya" değeri kullanılır.
3. Tip Belirleme (Type Hinting)
PHP 8'de fonksiyon parametrelerinin hangi türde veri alacağını belirlemek mümkündür. Bu, tip hatalarını önleyerek daha güvenilir kod yazmanıza olanak tanır. Veri türleri, parametre isminin önüne eklenir.
Örnek (Tip Belirleme):
<?php
function topla(
int $a, int $b
) {
return $a + $b;
}
echo topla(5, 10); // Çıktı: 15
?>
Bu örnekte, topla()
fonksiyonu sadece int
türünde değerler alır. Eğer başka bir veri tipi (örneğin string) girilirse PHP hata verir.
4. Birden Fazla Parametre Gönderme
Bir fonksiyon, birden fazla parametre alabilir. Parametreler virgülle (,
) ayrılır.
Örnek:
<?php
function bilgi(
$isim, $yas, $sehir
) {
echo "$isim, $yas yaşında ve $sehir'de yaşıyor.";
}
bilgi("Ali", 25, "İstanbul"); // Çıktı: Ali, 25 yaşında ve İstanbul'da yaşıyor.
?>
5. Adlandırılmış Parametreler (Named Arguments)
PHP 8 ile gelen adlandırılmış parametreler, argümanları sıraya bağlı kalmaksızın isimleriyle fonksiyona iletmenizi sağlar. Bu, özellikle çok sayıda parametreye sahip fonksiyonlarda kullanılabilir.
Örnek:
<?php
function bilgi(
$isim, $yas, $sehir
) {
echo "$isim, $yas yaşında ve $sehir'de yaşıyor.";
}
bilgi(yas: 30, sehir: "Ankara", isim: "Ayşe"); // Çıktı: Ayşe, 30 yaşında ve Ankara'da yaşıyor.
?>
Bu örnekte, parametreler ismine göre sırasız bir şekilde iletilmiştir.
6. Sınırsız Sayıda Parametre (Variadic Functions)
PHP'de fonksiyonlar, ...
(variadic) operatörü kullanılarak sınırsız sayıda parametre alabilir. Bu parametreler, bir dizi olarak fonksiyon içinde işlenir.
Örnek:
<?php
function topla(...$sayilar
) {
return array_sum($sayilar);
}
echo topla(1, 2, 3, 4); // Çıktı: 10
?>
Bu örnekte, topla()
fonksiyonu sınırsız sayıda parametre alabilir ve tüm bu parametreleri toplayarak sonucu döndürür.
7. Referans ile Parametre Gönderme
PHP'de bir parametreyi referans ile geçirerek, fonksiyonun içinde yapılan değişikliklerin orijinal değişkene yansımasını sağlayabilirsiniz. Referans ile parametre geçmek için &
işareti kullanılır.
Örnek:
<?php
function arttir(&$sayi
) {
$sayi++;
}
$deger = 5;
arttir($deger);
echo $deger; // Çıktı: 6
?>
Bu örnekte, arttir()
fonksiyonu $deger
değişkeninin değerini referans ile alır ve doğrudan değiştirir.
8. Fonksiyon Parametrelerine Tip Belirleme ile Birden Fazla Veri Tipi (Union Types)
PHP 8 ile gelen union types özelliği, bir parametrenin birden fazla veri türünde olabileceğini belirtmeye olanak tanır. Bu, bir fonksiyonun farklı türlerde verilerle çalışmasını sağlar.
Ö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
türünde parametreler alabilir ve bunlarla işlem yapabilir.
9. Varsayılan ve Zorunlu Parametrelerin Birlikte Kullanımı
Varsayılan parametreler her zaman zorunlu parametrelerden sonra gelmelidir. Bu kurala dikkat edilmezse PHP hata verir.
Örnek:
<?php
function selamla(
$isim, $mesaj = "Merhaba"
) {
echo "$mesaj, $isim!";
}
selamla("Ali"); // Çıktı: Merhaba, Ali!
selamla("Ayşe", "Günaydın"); // Çıktı: Günaydın, Ayşe!
?>
Bu örnekte, selamla()
fonksiyonunda birinci parametre zorunlu, ikinci parametre ise varsayılan bir değere sahiptir.
10. Boş Parametreler (Null Arguments)
Bir parametrenin boş (null
) olabileceği durumu belirtmek için ?
işareti kullanılabilir. Bu, opsiyonel parametrelerin null olabileceğini belirtir.
Örnek:
<?php
function selamla(?string $isim
) {
if ($isim) {
echo "Merhaba, $isim!";
} else {
echo "Merhaba, misafir!";
}
}
selamla(null); // Çıktı: Merhaba, misafir!
selamla("Ali"); // Çıktı: Merhaba, Ali!
?>
Sonuç
PHP 8'de fonksiyonlara parametre gönderme, hem tip belirleme hem de esnek parametre kullanımı açısından oldukça güçlü hale getirilmiştir. Varsayılan değerler, adlandırılmış argümanlar, referans ile parametre geçme ve sınırsız sayıda parametre kabul etme gibi özellikler, fonksiyonları daha dinamik ve esnek hale getirir.