1. 函数说明
调用回调函数。原型: mixed call_user_func ( callable
callback[,mixed
parameter [, mixed $… ]] )。 第一个参数 callback 是被调用的回调函数,其余参数是回调函数的参数。参数可以有多个,也可以是数组。
参数不可以为引用,但可以通过数组传递引用。下面是一个例子:
<?php
function addone(&$num) {
$num ++;
}
$num = 0;
call_user_func('addone', $num);
echo "num : " . $num . "\n";
call_user_func_array('addone', array(&$num) );
echo "num : " . $num . "\n";
?>
输出:
0
1
返回值:返回回调函数的返回值,如果错误则返回FALSE。
2. 示例
- 命名空间的使用。
<?php
namespace Foobar;
class Foo {
static public function test() {
print "Hello world!\n";
}
}
call_user_func(__NAMESPACE__ .'\Foo::test');
call_user_func(array(__NAMESPACE__ .'\Foo', 'test'));
?>
- 调用一个类里面的方法
<?php
class myclass {
static function test()
{
echo "Hello world!\n";
}
}
$classname = "myclass";
call_user_func(array($classname, 'test'));
$myobject = new myclass();
call_user_func(array($myobject, 'test'));
?>