使用call_user_func函数,通过传入字符串函数,可以调用自定义函数,并且支持引用。
1.mixed call_user_func ( callable $callback [, mixed $parameter [, mixed $... ]] )
调用第一个参数提供的自定义函数,后面的参数为自定义函数的参数,返回自定义函数的结果。
function say($word){ echo $word; } call_user_func('say', 'hello world'); //hello world
当然也可以调用类中的方法:
class A{ function say($word = '') { echo $word; } } $a = new A(); //注意,必须是要实例化的,除非是static call_user_func(array($a, 'say'), 'hello world'); //hello world
2.mixed call_user_func_array ( callable $callback , array $param_arr )
话说call_user_func_array和call_user_func函数功能一样,只是调用参数时有点区别:
function a($word){ echo $word; } class A{ function say($word = ''){ echo $word; } } call_user_func_array('a', array('hello world')); //hello world $a = new A(); //注意,必须是要实例化的,除非是static call_user_func_array(array($a, 'say'), array('hello world')); //hello world
注明:另外类似的两个函数是call_user_method 和call_user_method_array() 不过在PHP4.1后就停用废弃了。