İş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 foobar($arg$arg2) {
    echo 
__FUNCTION__" got $arg and $arg2\n";
}

class 
foo {
    function 
bar($arg$arg2) {
        echo 
__METHOD__" got $arg and $arg2\n";
    }
}
// foobar() işlevini iki değiştirge ile çağıralım
call_user_func_array("foobar", array("one""two"));

// $foo->bar() yöntemini iki değiştirge ile çağıralım
$foo = new foo;
call_user_func_array(array($foo"bar"), array("three""four"));

?>

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

foobar got one and two
foo::bar got three and four

Ö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