2014-09-21 138 views

回答

2

這是不可能的call_user_func()

PHP documentation

注意,對於call_user_func()的參數沒有被引用傳遞。

這就是說你仍然可以使用call_user_func_array()。現在可以使用該參考。以下是您想要的代碼:

function change(&$str) 
{ 
    $str='str'; 
} 

$string='string'; 
$parameters = array(&$string); 
call_user_func_array('change',$parameters); 
echo $string; 

但是,此解決方案現在已被棄用。

您仍然可以擺脫call_user_func(),並簡單地做:

function change(&$str) 
{ 
    $str='str'; 
} 

$string='string'; 
change($string); 
echo $string; 
1

這是你的錯誤消息:

<br /> 
<b>Warning</b>: Parameter 1 to change() expected to be a reference, value given on line <b>5</b> 

因爲call_user_func引用不傳遞參數。

嘗試像這樣運行它:

$string='string'; 
function change(&$str){ 
    $str='str'; 
} 
change($string); 
echo $string; 
相關問題