PHP Conference Japan 2024

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 条注释

0
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