ReflectionFunction::invoke

(PHP 5, PHP 7, PHP 8)

ReflectionFunction::invoke调用函数

描述

public ReflectionFunction::invoke(混合 ...$args): 混合

调用一个反射函数。

参数

args

传入的参数列表。它接受可变数量的参数,这些参数被传递给函数,就像 call_user_func() 一样。

返回值

返回调用的函数调用的结果。

范例

范例 #1 ReflectionFunction::invoke() 范例

<?php
function title($title, $name)
{
return
sprintf("%s. %s\r\n", $title, $name);
}

$function = new ReflectionFunction('title');

echo
$function->invoke('Dr', 'Phil');
?>

以上代码将输出

Dr. Phil

注释

注意:

ReflectionFunction::invoke() 不能用于期望引用参数的情况。必须使用 ReflectionFunction::invokeArgs() 代替(在参数列表中传递引用)。

参见

添加注释

用户贡献注释 1 个注释

spark at limao dot com dot br
13 年前
我知道 Reflections 类很有力量,但有时我们只需要存储一个匿名函数,或者在某个地方创建一个简单的回调。

所以,这就是 Callback 类
<?php
class Callback{
private
$name = false;

public function
Callback($obj,$call=false){
$name = array($obj);
if(
$call) $name[] = $call;

$this->name = $name;
}
public function
invoke($params=array()){
return
call_user_func_array($this->name,$params);
}
}
?>

用法
<?php
function sayName(){
return
"goku";
}

$myVar = new Callback("sayName");

echo
"Hi, I am ".$myVar->invoke()."!";

//也适用于方法:new Callback($obj,"method");
?>
To Top