Eğer fonksiyon için gönderilecek parametre sayısında bir bbelirsizlik varsa ya dizi yöntemi ya da şimdi bahsedeceğim yöntemi tercih etmelisiniz. Bu yöntem için 3 adet PHP fonksiyonu öğreneceğiz.
Prototip | Tanım |
---|---|
mixed func_get_arg ($int $n) | Fonksiyona gönderilen argüman dizisinden $n. indisi döndürür. Eğer $n. indis bulamaz ise hata verir. |
array func_get_args (void) | Fonksiyona gönderilen argümanları dizi olarak döndürür. |
int func_num_args (void) | Fonksiyona gönderilen argüman sayısını döndürür. |
<?php
funcion argumanlar(){
$adet = func_num_args();
if($adet == 0)
return;
echo $adet . ' parametre bulundu.<br>';
if($adet > 1){
$args = func_get_args();
foreach ($args as $key){
echo $key . '<br>';
}
#echo func_get_arg(1) komutu ile 2. sıradaki değer alınabilir.
}else{
echo func_get_arg(0) . '<br>';
}
echo '<br>';
}
argumanlar ();
argumanlar ('HTML5');
argumanlar ('PHP','MySQL');
?>
Yukarıdaki örnekte, normalde fonksiyon herhangi bir parametre almamasına rağmen, parametre gönderdiğimizde bu parametrelere erişebiliyoruz. Örnekte öncelikle func_num_args() ile kaç adet parametre algılandığını öğrendik.
Eğer hiç parametre yoksa fonksiyondan çıkıyoruz. Eğer birden fazla parametre varsa tüm parametrelere erişmek için func_get_args() fonksiyonu ile tüm parametrelere tek sefer erişebiliyoruz. Eğer tek parametre gönderilmişse func_get_arg() metodu ile parametreyi alıyoruz.