php手冊 中關於
請注意,傳入call_user_func()的引數不能為引用傳遞。
關於這個情況的解釋,可自己搜尋。我們可以自己定義一個函式解決這樣的問題,例項如下:
<?php
ini_set('display_errors',1);
error_reporting(E_ALL); function call_user_func_super($h,&$c)
{
if(is_callable($h))
{
return (is_array($h))?$h[0]->$h[1]($c):$h($c);
}
else
{
return false;
}
} $c = 1; $h = function(&$c){
echo ++$c;
};
call_user_func_super($h,$c);
echo $c.'<br/>'; $h = 'hhh';
function hhh(&$c){
echo ++$c;
}
call_user_func_super($h,$c);
echo $c.'<br/>'; class nnn{
function hhh(&$c){
echo ++$c;
}
}
$h = [new nnn,'hhh'];
call_user_func_super($h,$c);
echo $c.'<br/>';
其中call_user_func_super就是自定義的 函式,可以使用自定義變數。輸出:
22
33
44
當然這裡面只使用了一個自定義變數,如果多個,可自行更改就可以了。