usage of call_user_func_array function in php

php function call_user_func_array

<?phpclass Foo {    static public function test($name) {        print "Hello {$name}!\n";    }    public function bar($name) {        print "Hello {$name}\n";    }}// call static Class methods.call_user_func_array('Foo::test', array('Hannes'));// Hello Hannes!call_user_func_array(array('Foo', 'test'), array('Philip'));// Hello Philip!$foo = new Foo();// call object instance methods.call_user_func_array(array($foo, 'bar'), array('World!'));call_user_func_array(array($foo, 'bar'), 'World!');// Hello World!?>

参考php手册

callback有些诸如call_user_function()usort()的函数接受用户自定义的函数作为一个参数。

callback函数不仅可以是一个简单的函数,它还可以是一个对象的方法,包括静态类的方法。

一个php函数用函数名字符串来传递。可以传递任何内置的或者用户自定义的函数,除了 array()echo()empty()eval()exit()isset()list()print()unset()

一个对象的方法以数组的形式来传递,数组的下标0指明对象名,下标1指明方法名。对于没有实例化为对象的静态类,要传递其方法,将数组0下标指明的对象名换成该类的名称即可。

References

  1. http: //cn.php.net/manual/en/function.call-user-func-array.php