PHP 8'de, bir fonksiyona değişken sayıda parametre göndermek için birkaç farklı yöntem vardır. En yaygın kullanılan yöntemler arasında ...
(splat operatörü) ve func_get_args()
fonksiyonu bulunur.
1. Splat Operatörü (Variadic Functions)
PHP 5.6 ile tanıtılan ...
(splat operatörü), PHP 8'de de kullanılmaya devam etmektedir. Bu operatör, bir fonksiyona değişken sayıda parametre almanızı sağlar ve bu parametreleri bir dizi olarak yakalar.
Örnek:
function toplam(...$sayilar
) {
return array_sum($sayilar);
}
echo toplam(1, 2, 3, 4); // 10 çıktısını verir
Burada ...$sayilar
ifadesi, fonksiyona gönderilen tüm parametreleri bir dizi olarak alır.
2.
func_get_args()
Fonksiyonu
Bu yöntem daha eski PHP sürümlerinde de kullanılır ve fonksiyona kaç parametre gönderildiğine bakmaksızın tüm parametreleri bir dizi olarak almanızı sağlar.
Örnek:
function toplam(
) {
$sayilar = func_get_args();
return array_sum($sayilar);
}
echo toplam(1, 2, 3, 4); // 10 çıktısını verir
3. Splat Operatörü ile Tip Tanımlamaları
PHP 8 ile birlikte tip güvenliği artırıldı. Dolayısıyla, ...
operatörünü kullanırken parametrelerin tipini de belirtebilirsiniz.
Örnek:
function toplama(
int ...$sayilar
): int {
return array_sum($sayilar);
}
echo toplama(1, 2, 3, 4); // 10 çıktısını verir
Bu örnekte int ...$sayilar
ifadesi ile sadece tam sayılar alınacağını belirtmiş oluyoruz.
4. Splat Operatörünü Diziye Uygulama
Splat operatörünü, bir diziyi fonksiyona parametre olarak göndermek için de kullanabilirsiniz.
Örnek:
function toplama(
int ...$sayilar
): int {
return array_sum($sayilar);
}
$dizi = [1, 2, 3, 4];
echo toplama(...$dizi); // 10 çıktısını verir
Bu örnekte, ...$dizi
ile diziyi parçalayarak, her bir elemanını ayrı bir parametre olarak fonksiyona gönderiyoruz.
Sonuç
PHP 8'de değişken sayıda parametre gönderimi yapmak oldukça esnektir. Genellikle ...
operatörü en modern ve kullanışlı yöntemdir.