1. İsimlendirilmiş Argüman Nedir?
PHP 8 ile birlikte gelen Named Arguments (İsimlendirilmiş Argümanlar) özelliği, bir fonksiyona parametreleri konum sırasına göre değil, isimlerine göre göndermeyi sağlar.Bu özellik sayesinde kod daha okunabilir, esnek ve bakımı kolay hale gelir.
2. Geleneksel (Sıralı) Argüman Kullanımı
PHP 8 öncesinde fonksiyon çağrıları, parametre sırasına bağlıydı.Parametreleri doğru sırayla yazmak gerekiyordu.
Örnek:
Kod:
function kullaniciOlustur(string $isim, int $yas, string $rol = 'üye') {
echo "$isim, $yas yaşında bir $rol'dir.";
}
kullaniciOlustur('Ahmet', 25, 'admin');
Burada her argüman doğru sırayla verilmek zorunda.
Eğer sadece 3. parametreyi değiştirmek istiyorsak, önceki parametreleri de belirtmemiz gerekir.
3. PHP 8 ile İsimlendirilmiş Argüman Kullanımı
PHP 8’de artık parametre isimlerini yazarak, argümanları sıra bağımsız olarak gönderebiliriz.Örnek:
Kod:
function kullaniciOlustur(string $isim, int $yas, string $rol = 'üye') {
echo "$isim, $yas yaşında bir $rol'dir.";
}
kullaniciOlustur(isim: 'Ahmet', yas: 25, rol: 'admin');
Ya da sıralamayı değiştirebiliriz:
kullaniciOlustur(rol: 'admin', isim: 'Mehmet', yas: 30);
Sonuç:
Her iki çağrı da aynı çıktıyı üretir, çünkü artık sıra değil, isim önemlidir.
4. Avantajları
| Avantaj | Açıklama |
|---|---|
| ✅ Daha okunaklı kod | Fonksiyon çağrısında hangi değerin ne olduğunu açıkça gösterir. |
| ✅ Sıra esnekliği | Argümanların sırası önemli değildir. |
| ✅ Opsiyonel parametrelerde kolaylık | Sadece değiştirmek istediğin parametreleri yazabilirsin. |
| ✅ Hata riskini azaltır | Parametre sırasını yanlış yazma hataları ortadan kalkar. |
5. Sadece İstediğin Argümanları Göndermek
İsimlendirilmiş argümanlar sayesinde varsayılan değerleri atlayabiliriz.Örnek:
Kod:
function baglantiKur(string $host, int $port = 3306, string $kullanici = 'root', string $parola = '') {
echo "Bağlanılıyor: $host:$port ($kullanici)";
}
// Sadece host ve kullanıcı adı değiştirildi:
baglantiKur(host: 'localhost', kullanici: 'admin');
PHP otomatik olarak diğer argümanları (port, parola) varsayılan değerleriyle kullanır.
6. Diğer Argümanlarla Birlikte Kullanım
İsimlendirilmiş ve konumlu (positional) argümanlar birlikte kullanılabilir, ancak:
İsimlendirilmiş argümanlar, konumlu argümanlardan sonra yazılmalıdır.
Doğru:
kullaniciOlustur('Ahmet', yas: 22);
Hatalı:
kullaniciOlustur(isim: 'Ahmet', 22); // Hata: isimlendirilmişten sonra konumlu argüman olamaz
7. Dikkat Edilmesi Gerekenler
Parametre isimleri fonksiyon tanımındaki isimlerle birebir aynı olmalıdır.Yanlış yazılan isimler Error hatası oluşturur.
Kütüphaneler ve framework'lerde (ör. Laravel, Symfony) isimlendirilmiş argümanlar kullanılırken fonksiyon imzası değişirse uyumsuzluk olabilir.


