(PHP 5 >= 5.1.2, PHP 7, PHP 8)
ReflectionFunction::invokeArgs — Invokes function args
Invokes the function and pass its arguments as array.
argsThe parameters to be passed to the function, as an array, much like call_user_func_array() works.
If the keys of args are all numeric, the keys are
ignored and each element is passed to the function as a positional
argument, in order.
If any keys of args are strings, those elements are
passed to the function as named arguments, with the name given by the
key.
An Error is thrown if a numeric key in
args appears after a string key, or if a string key
does not match the name of any parameter of the function.
Returns the result of the invoked function
| 版本 | 说明 |
|---|---|
| 8.0.0 |
args keys will now be interpreted as parameter names, instead of being silently ignored.
|
示例 #1 ReflectionFunction::invokeArgs() example
<?php
function title($title, $name)
{
return sprintf("%s. %s\r\n", $title, $name);
}
$function = new ReflectionFunction('title');
echo $function->invokeArgs(array('Dr', 'Phil'));
?>以上示例会输出:
Dr. Phil
示例 #2 ReflectionFunction::invokeArgs() with references example
<?php
function get_false_conditions(array $conditions, array &$false_conditions)
{
foreach ($conditions as $condition) {
if (!$condition) {
$false_conditions[] = $condition;
}
}
}
$function_ref = new ReflectionFunction('get_false_conditions');
$conditions = array(true, false, -1, 0, 1);
$false_conditions = array();
$function_ref->invokeArgs(array($conditions, &$false_conditions));
var_dump($false_conditions);
?>以上示例会输出:
array(2) {
[0]=>
bool(false)
[1]=>
int(0)
}
注意:
如果函数有参数需为引用,那么它们必须以引用方式传入。