关于call_user_func_array
今天在看php框架源码的时候看到作者用call_user_func_array这个歌函数来处理所有动态的请求,觉得很神奇,也很有效。
关于call_user_func_array这个函数,首先看一看php.net上市如何介绍的:
把第一个参数作为回调函数(callback)调用,把参数数组作(param_arr)为回调函数的的参数传入。
返回回调函数的结果。如果出错的话就返回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"; } } // 直接调用foorbar方法,并传两个参数 call_user_func_array("foobar", array("one", "two")); // 调用foo类的bar方法,并传两个参数 $foo = new foo; call_user_func_array(array($foo, "bar"), array("three", "four")); ?>
输出结果为:
foobar got one and two foo::bar got three and four
如此方便的调用方法并传值可以应用在设计mvc的框架时的路由设计上。请参见下篇文章。


浙公网安备 33010602011771号