词条 | call_user_func_array |
释义 | 函数说明(PHP 4 >= 4.0.4, PHP 5) call_user_func_array - 返回一个用户函数与特定的参数数组 函数定义mixed call_user_func_array(callback $function , array $param_arr ) 在$param_arr 返回定义函数的参数的用户。 功能该函数被调用。 参数要传递参数给函数,作为一个索引数组。 版本说明5.3.0对象的解释像父性的关键词和自我改变。在此之前,称他们使用双冒号语法将发出一个E_STRICT警告,因为它们是静态的解释。 提示注释param_arr中引用的变量被传递给函数的参考,无论各自的功能参数,以期望通过引用传递。这种通话时通过引用传递的形式并不过时发出的通知,但它仍不失为过时了,并且很可能会在下一版本的PHP中删除。此外,这并不适用于内部函数,该函数的签名很荣幸。按值传递函数时预计,警告,有call_user_func()返回FALSE参数按引用的结果(不适用,如果传递的值有一个引用计数=1)。如call_user_func()和call_user_func_array()不会被调用,如果有一个未捕获的异常抛出在先前的回调函数。 实例说明例-1 <?php function foobar($arg, $arg2) { echo __FUNCTION__, " got $arg and $arg2\"; } class foo { function bar($arg, $arg2) { echo __METHOD__, " got $arg and $arg2\"; } } // Call the foobar() function with 2 arguments call_user_func_array("foobar", array("one", "two")); // Call the $foo->bar() method with 2 arguments $foo = new foo; call_user_func_array(array($foo, "bar"), array("three", "four")); ?> 输出类似于: foobar got one and two foo::bar got three and four 例子-2 call_user_func_array() 使用命名空间名称 <?php namespace Foobar; class Foo { static public function test($name) { print "Hello {$name}!\"; } } // As of PHP 5.3.0 call_user_func_array(__NAMESPACE__ .'\\Foo::test', array('Hannes')); // As of PHP 5.3.0 call_user_func_array(array(__NAMESPACE__ .'\\Foo', 'test'), array('Philip')); ?> 输出类似于: Hello Hannes! Hello Philip! 例-3 <?php $func = function($arg1, $arg2) { return $arg1 * $arg2; }; var_dump(call_user_func_array($func, array(2, 4))); /* As of PHP 5.3.0 */ ?> 将输出: int(8) |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。