请输入您要查询的百科知识:

 

词条 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条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2025/3/20 7:40:40