php call_user_func_array

call_user_func_array() 调用回掉函数,并把一个数组参数坐位回掉函数。也可以执行类中的方法。

例子:

<?php
function foobar($arg, $arg2) {
    echo __FUNCTION__, " got $arg and $arg2</br>";
}
class foo {
    static function bar($arg, $arg2) {
        echo __METHOD__, " got $arg and $arg2</br>";
    }

    function food($arg, $arg2) {
        echo __METHOD__, " got $arg and $arg2</br>";
    }
}

call_user_func_array("foobar", array("one", "two"));

$foo = new foo;
call_user_func_array(array($foo, "food"), array("three", "four"));
//这种方式是错误的
//call_user_func_array(array("foo", "food"), array("three", "four"));
//下面这种办法,通过PHP的对象的方式调用一个静态方法,并不会报错。但是静态方法中不可以出现$this关键字
call_user_func_array(array($foo, "bar"), array("three", "four"));
//个人感觉调用静态方法还是这样会好些
call_user_func_array(array("foo", "bar"), array("three", "four"));
?>

结果:

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

 

 

发表评论

电子邮件地址不会被公开。

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>