call_user_func_array

王朝百科·作者佚名  2012-05-29  
宽屏版  字体: |||超大  

函数说明(PHP 4 >= 4.0.4,PHP5)

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)[1]‍

 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝百科 版权所有