Php 8 Tanımsız Parametre Gönderimi

Php 8 Tanımsız Parametre Gönderimi

PHP 8'de, tanımsız parametre gönderimi, bir fonksiyona beklenenden az veya beklenmeyen parametrelerin geçirilmesiyle ilgilidir. Bu durumda PHP'nin nasıl davrandığı ve hangi hata ya da uyarıları verdiği önemli hale gelir.

PHP'de bir fonksiyon veya metod çağrıldığında, tanımlı parametre sayısına göre değişkenler gönderilmelidir. Ancak bazı durumlarda eksik veya fazla parametre gönderilebilir.

1. Tanımsız Parametre Gönderimi ve Varsayılan Değerler

Eğer bir fonksiyona eksik parametre gönderirseniz ve bu parametreler için varsayılan değerler tanımlandıysa, PHP bu varsayılan değerleri kullanır ve bir hata vermez.

Örnek:

function selamla( $isim = "Misafir" ) { echo "Merhaba, $isim!"; } selamla(); // "Merhaba, Misafir!" çıktısını verir selamla("Ahmet"); // "Merhaba, Ahmet!" çıktısını verir

Bu örnekte, $isim parametresine bir değer gönderilmediğinde, varsayılan değer olan "Misafir" kullanılır.

2. Fazla Parametre Gönderimi

Bir fonksiyona, tanımlı parametre sayısından fazla parametre gönderirseniz, PHP bu ek parametreleri yok sayar ve bir uyarı vermez. Ancak bu parametreler fonksiyon içinde kullanılamaz.

Örnek:

function toplama( $a, $b ) { return $a + $b; } echo toplama(5, 10, 15); // 15 çıktısını verir, 15 fazladan bir parametredir ve yok sayılır

Burada üçüncü parametre (15), fonksiyonda kullanılmaz ve PHP tarafından yok sayılır.

3. Eksik Parametre Gönderimi

Eğer bir fonksiyona, tanımlanan zorunlu parametrelerden eksik parametre gönderirseniz, PHP 8 bir Fatal Error (Ölümcül Hata) verecektir. Bu hata, programın çalışmasını durdurur.

Örnek:

function toplama( $a, $b ) { return $a + $b; } echo toplama(5); // Fatal error: Uncaught ArgumentCountError: Too few arguments

Burada, fonksiyona iki parametre beklenirken sadece bir parametre gönderildiği için PHP 8 ArgumentCountError hatası verecektir.

4. Değişken Sayıda Parametre Gönderimi

PHP 8'de fonksiyonlar, değişken sayıda parametre alacak şekilde de tanımlanabilir. Bu, özellikle parametre sayısının sabit olmadığı durumlarda kullanılır. Bunun için splat operatörü (...) kullanılır.

Örnek:

function toplama(...$sayilar ) { return array_sum($sayilar); } echo toplama(1, 2, 3, 4); // 10 çıktısını verir

Bu örnekte, fonksiyon ...$sayilar ile kaç parametre gönderildiğine bakılmaksızın çalışır. Parametreler bir dizi olarak yakalanır.

5. Zorunlu ve Opsiyonel Parametrelerin Kombinasyonu

Bir fonksiyonda hem zorunlu hem de opsiyonel parametreler tanımlayabilirsiniz. Opsiyonel parametreler, varsayılan değerler tanımlanarak yapılır. Ancak opsiyonel parametreler her zaman zorunlu parametrelerden sonra gelmelidir.

Örnek:

function selamla( $isim, $mesaj = "Merhaba" ) { echo "$mesaj, $isim!"; } selamla("Ahmet"); // "Merhaba, Ahmet!" çıktısını verir selamla("Ahmet", "Hoş geldin"); // "Hoş geldin, Ahmet!" çıktısını verir

Burada $mesaj opsiyonel parametresine değer verilmezse varsayılan olarak "Merhaba" kullanılır. Ancak $isim parametresi zorunludur.

6. PHP 8 Named Arguments (İsimli Argümanlar)

PHP 8 ile tanıtılan yeni bir özellik olan named arguments (isimli argümanlar), fonksiyonlara tanımlı parametrelerden herhangi birine sıralamaya bakmadan değer göndermenize olanak tanır. Böylece parametre sıralaması daha esnek hale gelir ve hangi parametreye hangi değerin gönderildiği açıkça belirtilir.

Örnek:

function selamla( $isim, $mesaj = "Merhaba", $nokta = "!" ) { echo "$mesaj, $isim $nokta"; } selamla(mesaj: "Hoş geldin", isim: "Ahmet"); // "Hoş geldin, Ahmet!" çıktısını verir

Bu örnekte, isim ve mesaj argümanları sırasız olarak gönderildi. PHP 8, bu isimli argümanlarla parametreleri eşleştirir.

7. Fonksiyonlarda func_get_args() ile Tanımsız Parametre Yönetimi

PHP'nin eski bir yöntemi olan func_get_args() fonksiyonu, bir fonksiyona kaç parametre gönderildiğini bilmediğiniz durumlarda kullanılan bir fonksiyondur. Bu fonksiyon, gönderilen tüm parametreleri bir dizi olarak döndürür.

Örnek:

function toplama( ) { $args = func_get_args(); return array_sum($args); } echo toplama(1, 2, 3, 4); // 10 çıktısını verir

Burada, func_get_args() fonksiyona gönderilen tüm parametreleri alır ve bunları bir dizi olarak döndürür.

8. PHP 8'de Hata Yönetimi (ArgumentCountError)

PHP 8'de, eksik ya da fazla parametre gönderildiğinde PHP, ArgumentCountError hatasını tetikler. Bu hata, özellikle eksik parametrelerle çağrılan fonksiyonlar için yaygındır.

Örnek:

function toplama( $a, $b ) { return $a + $b; } try { toplama(5); } catch (ArgumentCountError $e) { echo "Hata: " . $e->getMessage(); }

Bu örnekte, eksik parametre nedeniyle ArgumentCountError fırlatılır ve catch bloğunda yakalanır.

Sonuç

PHP 8'de tanımsız parametre gönderimi, varsayılan değerlerle kontrol edilebilir ve named arguments gibi yeni özelliklerle daha esnek hale gelmiştir. Ancak zorunlu parametreler eksik olduğunda ArgumentCountError gibi hatalar alınabilir. Değişken sayıda parametre ile çalışmak gerektiğinde ... (splat) operatörü ya da func_get_args() gibi yöntemler kullanılabilir.



Yorum Ekle

Üzerine gel