İşlevlerle İlgili İşlevler
PHP Manual

call_user_func_array

(PHP 4 >= 4.0.4, PHP 5)

call_user_func_arrayDeğiştirgelerin bir dizi olarak verildiği kullanıcı işlevini çağırır

Açıklama

mixed call_user_func_array ( callback $işlev , array $değiştirge_dizisi )

değiştirge_dizisi içindeki değiştirgeleri kullanarak kullanıcının tanımladığı işlev işlevini çağırır.

Değiştirgeler

işlev

Çağrılacak işlev.

değiştirge_dizisi

İşleve aktarılacak indisli dizi şeklinde değiştirgeler.

Dönen Değerler

Bir hata oluşmamışsa işlevin sonucunu, aksi takdirde FALSE döndürür.

Örnekler

Örnek 1 - call_user_func_array() örneği

<?php
function debug($var$val)
{
    echo 
"***DEBUGGING\nVARIABLE: $var\nVALUE:";
    if (
is_array($val) || is_object($val) || is_resource($val)) {
        
print_r($val);
    } else {
        echo 
"\n$val\n";
    }
    echo 
"***\n";
}

$c = new StdClass();
$host $_SERVER["PHP_SELF"];

call_user_func_array('debug', array("host"$host));
call_user_func_array('debug', array("c"$c));
call_user_func_array('debug', array("_POST"$_POST));
?>

Yukarıdaki örnek şuna benzer bir çıktı üretir:

Örnek 2 - İsim alanı ismi kullanarak call_user_func_array()

<?php

namespace Mesela;

class 
Misal {
    static public function 
dnm($isim) {
        print 
"Merhaba {$isim}!\n";
    }
}

// PHP 5.3.0 ve sonrası
call_user_func_array(__NAMESPACE__ .'\Misal\dnm', array('Ozan'));

// PHP 5.3.0 ve sonrası
call_user_func_array(array(__NAMESPACE__ .'\Misal''dnm'), array('Özgür'));
?>

Yukarıdaki örnek şuna benzer bir çıktı üretir:

Merhaba Ozan!
Merhaba Özgür!

Örnek 3 - Lamda işlevi kullanımı

<?php

$işlev 
= function($dğş1$dğş2) {
    return 
$dğş1 $dğş2;
};

var_dump(call_user_func_array($işlev, array(24))); /* PHP 5.3.0 ve sonrası */
?>

Yukarıdaki örneğin çıktısı:

int(8)

Notlar

Bilginize: değiştirge_dizisi içindeki gönderimli değiştirgeler işleve gönderimli aktarılır, diğerleri ise değerleriyle aktarılır. Başka bir deyişle değiştirgenin değeriyle mi yoksa gönderimli olarak mı aktarılacağı işlevin nasıl tanımlandığı ile ilgili değildir.

Ayrıca Bakınız


İşlevlerle İlgili İşlevler
PHP Manual