Bu yazı da sizlere, esnek yapılar kurmamızda faydalı olabilecek func_num_args, func_get_args ve func_get_arg fonksiyonlarını anlatmaya çalışacağım. Bu fonksiyonlar sayesinde fonksiyona gönderilen parametre sayısına ulaşabilir, sabit bir parametre tanımlamadan istediğiniz kadar parametreyi gönderip, işleyebilirsiniz. İlk olarak bu 3 fonksiyonun tam olarak ne amaçla kullandığını aktarmaya çalışayım.
func_num_args : Mevcut fonksiyona gönderilen parametre sayısına ulaşmamızı sağlar.
func_get_args : Mevcut fonksiyona gönderilen tüm parametrelere dizi olarak ulaşmamızı sağlar.
func_get_arg : Mevcut fonksiyona gönderilen tek bir parametreye ulaşmamızı sağlar.
Şimdi biraz somut örnekler üzerinden konuyu anlatmaya çalışayım.
function giris()
{
// Bu fonksiyona kaç parametre gönderildiği bilgisi
$toplam_parametre = func_num_args();
// Kullanıcı adı ve şifre zorunlu alan olduğundan kontrol ediyoruz.
if($toplam_parametre >= 2)
{
// Gelen parametreleri "data" değişkenine atıyoruz. (Array)
$data = func_get_args();
// Gelen parametrelerin çıktısını ekrana basıyoruz.
print_r($data);
}
else
{
echo 'Lutfen kullanici adi ve sifreyi gonderin.';
}
}
"giris" isminde bir fonksiyon tanımladık. Ama bu fonksiyona giris(mail,sifre) gibi herhangi bir parametre tanımlamadık. Şimdi bu fonksiyonu çağıralım.
giris('a@b.com','123456');
Parametre tanımlamadığımız halde ben bu fonksiyona "a@b.com" ve "123456" olmak üzere 2 tane string parametre gönderdim. Bu kodları çalıştırdığımızda :
Array
(
[0] => a@b.com
[1] => 123456
)
böyle bir çıktı ile karşılaşıyoruz. Gördüğünüz gibi fonksiyona herhangi bir parametre tanımlamadığımız halde, gönderdiğimiz parametrelere fonksiyon içinden ulaşabiliyoruz.
function giris()
{
// Bu fonksiyona kaç parametre gönderildiği bilgisi
$toplam_parametre = func_num_args();
// Kullanıcı adı ve şifre zorunlu alan olduğundan kontrol ediyoruz.
if($toplam_parametre >= 2)
{
// Gelen parametrelere tek tek ulaşıyoruz.
$mail = func_get_arg(0);
$sifre = func_get_arg(1);
echo 'Mail : ' . $mail;
echo '
';
echo 'Sifre : ' . $sifre;
}
else
{
echo 'Lutfen kullanici adi ve sifreyi gonderin.';
}
}
giris('a@b.com','123456');
func_get_arg fonksiyonunu kullanarak gelen parametrelere indis değerleri ile ulaşabiliyoruz. İlk parametreye ulaşmak için 0. elemanı çağırmamız gerekiyor.
Okunma Sayısı : 138
Yorumlar