PHP call_user_func function 处理函数



  • 定义和用法

    call_user_func - 把第一个参数作为回调函数调用
  • 版本支持

    PHP4 PHP5 PHP7
    支持 支持 支持
    v5.3.0 对面向对象里面的关键字的解析有所增强。在此之前,使用两个冒号来连接一个类和里面的一个方法,把它作为参数来作为回调函数的话,将会发出一个E_STRICT的警告,因为这个传入的参数被视为静态方法。
  • 语法

    call_user_func( callable $callback [, mixed $parameter [, mixed $... ]] )
    
    call_user_func() 第一个参数 callback 是被调用的回调函数,其余参数是回调函数的参数。
  • 参数

    参数 必需的 描述
    callback 被调用的回调函数。
    parameter 是(取决回调函数是否有参数) 0个或以上的参数,被传入回调函数。
    注意:请注意,传入call_user_func()的参数不能为引用传递。
    error_reporting(E_ALL);
    function increment(&$var)
    {
        $var++;
    }
    
    $a = 0;
    call_user_func('increment', $a);
    echo $a."\n";
    
    call_user_func_array('increment', array(&$a)); // You can use this instead before PHP 5.3
    echo $a."\n";
    
    以上例程输出:
    0
    1       
    
  • 返回值

    返回回调函数的返回值。
  • 示例

    function barber($type)
    {
            echo "You wanted a $type haircut, no problem<br/>";
    }
    call_user_func('barber', "mushroom");
    call_user_func('barber', "shave");
    
  • 相关页面

    call_user_func_array() - 调用回调函数,并把一个数组参数作为回调函数的参数
    is_callable() - 检测参数是否为合法的可调用结构
    ReflectionFunction::invoke() - 调用函数
    ReflectionMethod::invoke() - 执行方法