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 則註解

spark at limao dot com dot br
13 年前
我知道 Reflection 類別功能強大,但有時我們只需要儲存一個匿名函式或在某處建立一個簡單的回呼函式。

所以這裡提供 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
函式 sayName(){
返回
"goku";
}

$myVar = new Callback("sayName");

echo
"嗨,我是 ".$myVar->invoke()."!";

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