php函数call_user_fun

关于php函数 :call_user_fun()

看到好多地方使用call_user_fun(),一直没有使用过。
查询官网以及相关资料了解,以此记之。(示例来源php官网

此函数为php内置函数,允许用户调用回调函数,并将参数传入

  • 语法

    mixed call_user_func ( callable $callback [, mixed $parameter [, mixed $… ]] )

第一个参数 callback 是被调用的回调函数,其余参数是回调函数的参数

  • 注意

传入call_user_func()的参数不能为引用传递。

  • 返回值

返回回调函数的返回值,如果错误则返回FALSE

示例:
<?php
function barber($type)
{
    echo "You wanted a $type haircut, no problem\n";
}
call_user_func('barber', "mushroom");
call_user_func('barber', "shave");
?>

相关函数 call_user_fun_array()

功能和call_user_fun()类似,调用回调函数,并把一个#数组#参数作为回调函数的参数

注意数组得是索引数组,结果出错则返回false

示例:
<?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";
    }
}


// Call the foobar() function with 2 arguments
call_user_func_array("foobar", array("one", "two"));

// Call the $foo->bar() method with 2 arguments
$foo = new foo;
call_user_func_array(array($foo, "bar"), array("three", "four"));
?>

在函数中注册有多个回调内容时(如使用 call_user_func() 与 call_user_func_array()),如在前一个回调中有未捕获的异常,其后的将不再被调用。