PHP 8'de default (varsayılan) parametre ataması, bir fonksiyon çağrılırken parametre verilmediği durumlarda bu parametrelere varsayılan bir değer atanmasını sağlar. Varsayılan parametreler, fonksiyon çağrıldığında isteğe bağlı olarak değiştirilebilir, ancak verilmediğinde varsayılan değer devreye girer.
1. Varsayılan Parametre Atama Kuralları
- Varsayılan bir değer atanmış parametreler, her zaman zorunlu parametrelerden sonra gelmelidir. Aksi takdirde PHP hata verir.
- Varsayılan parametreler, bir değer sağlanmadığında fonksiyonun bu parametreler için kullanacağı değerleri belirler.
2. Varsayılan Parametre Kullanımı
Bir fonksiyonun parametrelerine varsayılan değer atamak için, parametre tanımına =
işareti ile varsayılan değeri ekleriz.
Örnek:
<?php
function selamla(
$isim = "Misafir"
) {
echo "Merhaba, $isim!<br>";
}
// Parametre gönderilmezse varsayılan değer kullanılır
selamla(); // Çıktı: Merhaba, Misafir!
// Parametre verilirse varsayılan değer kullanılmaz
selamla("Ali"); // Çıktı: Merhaba, Ali!
?>
Bu örnekte, selamla()
fonksiyonuna bir parametre verilmezse, $isim
parametresi için varsayılan olarak "Misafir" kullanılır. Ancak, bir parametre verilirse (örneğin "Ali"), bu parametre kullanılır.
3. Birden Fazla Varsayılan Parametre
Bir fonksiyonda birden fazla parametreye varsayılan değer atanabilir. Zorunlu parametreler, varsayılan parametrelerden önce gelmelidir.
Örnek:
<?php
function kullaniciBilgisi(
$isim, $yas = 18, $sehir = "Bilinmiyor"
) {
echo "İsim: $isim, Yaş: $yas, Şehir: $sehir <br>";
}
// Sadece zorunlu parametre olan isim verilir
kullaniciBilgisi("Ayşe"); // Çıktı: İsim: Ayşe, Yaş: 18, Şehir: Bilinmiyor
// İsim ve yaş parametreleri verilir, şehir varsayılan olarak kullanılır
kullaniciBilgisi("Mehmet", 25); // Çıktı: İsim: Mehmet, Yaş: 25, Şehir: Bilinmiyor
// Tüm parametreler verilir, varsayılan değerler kullanılmaz
kullaniciBilgisi("Ali", 30, "İstanbul"); // Çıktı: İsim: Ali, Yaş: 30, Şehir: İstanbul
?>
Bu örnekte, kullaniciBilgisi()
fonksiyonunda sadece isim zorunlu bir parametredir. Diğer iki parametre ($yas
ve $sehir
), isteğe bağlıdır ve varsayılan değerler atanmıştır.
4. Varsayılan Parametrelerin Sıralanması
PHP’de varsayılan parametreler her zaman fonksiyonun zorunlu parametrelerinden sonra yer almalıdır. Eğer önce varsayılan, sonra zorunlu bir parametre tanımlanmaya çalışılırsa, PHP hata verir.
Geçerli Sıralama:
<?php
function mesajGonder(
$mesaj, $alici = "Bilinmiyor"
) {
echo "Mesaj: $mesaj, Alıcı: $alici<br>";
}
mesajGonder("Selam!"); // Çıktı: Mesaj: Selam!, Alıcı: Bilinmiyor
mesajGonder("Merhaba!", "Ahmet"); // Çıktı: Mesaj: Merhaba!, Alıcı: Ahmet
?>
Geçersiz Sıralama (Hata verir):
<?php
function mesajGonder(
$alici = "Bilinmiyor", $mesaj
) {
echo "Mesaj: $mesaj, Alıcı: $alici<br>";
}
?>
Bu kodda hata oluşur, çünkü varsayılan parametre zorunlu parametreden önce tanımlanmıştır.
5. Varsayılan Parametreler ile Tip Belirleme
PHP 8'de varsayılan parametrelerle birlikte tip belirleme (type hinting) de kullanılabilir. Tip belirleme, parametrenin belirli bir veri türünde olmasını zorunlu kılar.
Örnek (Tip Belirleme ile Varsayılan Parametre):
<?php
function topla(
int $a, int $b = 5
): int {
return $a + $b;
}
echo topla(10); // Çıktı: 15 (10 + 5)
echo topla(10, 20); // Çıktı: 30 (10 + 20)
?>
Bu örnekte, topla()
fonksiyonu birinci parametre olarak int
türünde bir değer alır ve ikinci parametre varsayılan olarak 5 atanmıştır. Bu parametreler üzerinde yapılan işlemin sonucunda dönen değer de int
türündedir.
6. Adlandırılmış Parametreler ve Varsayılan Parametreler
PHP 8 ile gelen adlandırılmış parametreler (named arguments) ile birlikte varsayılan parametreler daha esnek bir şekilde kullanılabilir. Parametrelerin sırasına bakmaksızın, isimleriyle fonksiyona değer gönderilebilir.
Örnek:
<?php
function kullaniciBilgisi(
$isim, $yas = 18, $sehir = "Bilinmiyor"
) {
echo "İsim: $isim, Yaş: $yas, Şehir: $sehir <br>";
}
kullaniciBilgisi(sehir: "Ankara", isim: "Ali"); // Çıktı: İsim: Ali, Yaş: 18, Şehir: Ankara
?>
Bu örnekte, adlandırılmış parametreler kullanılarak sırası gözetilmeksizin değerler fonksiyona gönderilmiştir. $yas
parametresi için bir değer verilmediğinden, varsayılan değeri olan 18 kullanılır.
7. Sonuç
PHP 8'de varsayılan parametre atamaları, fonksiyonların daha esnek bir şekilde kullanılmasını sağlar. Fonksiyonlara zorunlu olmayan parametreler eklenebilir ve bu parametrelere varsayılan değerler atanabilir. Bu, özellikle çok sayıda opsiyonel parametreye sahip fonksiyonlar için büyük kolaylık sağlar.