Php Fonksiyona Değişken Parametre Göndermek

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


Hiç Yorum Yapılmamış. İlk Yorumu Siz Yapın.

Twitter Günlüğü