2014-03-03 81 views
0

我在PHP 5此功能:PHP 5代碼PHP不工作4

function myPHPFunction($shows) { 

     foreach($shows as &$show) { 
         $showData = $this->Api->getID(null, $show->showId, false); 
         $show->Id = $showData->Id; 
     } 
     return $shows; 
} 

在$顯示陣列具有空ID,我可以用一個API調用來獲取ID,當我返回$顯示在最後,ID字段被填充。如果我這個代碼遷移到PHP 4:

function myPHPFunction($shows) { 

     foreach($shows as $show) { 
         $showData = $this->Api->getID(null, $show->showId, false); 
         $show->Id = $showData->Id; 
     } 
     return $shows; 
} 

的$顯示陣列仍然有一個空的id字段,當我返回的。它有什麼用& $因爲&不PHP 4

+2

'的foreach($顯示爲$密鑰=> $顯示){$顯示[$鍵] - >編號= $ showData->標識; }' –

回答

1

通過引用傳遞可用PHP之後才起作用4.0.4

有一個函數調用無符號 - 僅限於功能 的定義。單獨的函數定義足以通過引用正確地傳遞參數 。從PHP 5.3.0開始,當您在foo(& $ a);中使用& 時,您將收到警告 ,聲稱「不需要通過呼叫時傳遞」。而且從PHP 5.4.0開始,通話時間通過引用被刪除,因此使用它會引發致命錯誤 。

Source