2017-08-16 73 views
0

這裏是我的代碼:如何將新項目推送到作爲方法結果的數組中?

$this->results['twitter'] = array_push($this->twitter($request),"active"); 

它拋出:

只有變量應參考

什麼是錯,我該如何修復它通過?

+1

'$ new_array = $這個 - >的twitter($要求); $ this-> results ['twitter'] = array_push($ new_array,「active」);' – JYoThI

+0

@JYoThI Thx。我不能這樣做,對嗎? – stack

+0

是的,你不能傳遞返回結果作爲參數。所以你需要將它存儲在變量中並作爲參數傳遞。你可以通過引用一個函數來傳遞一個變量,這樣函數可以修改變量 – JYoThI

回答

1

請注意array_push返回一個整數,表示加法後數組元素的計數。您可以使用array_merge代替:

$this->results['twitter'] = array_merge($this->twitter($request), ['active']); 
+0

謝謝,upvote。訂單怎麼樣? 'active'會一直追加到數組的末尾嗎? – stack

+0

該命令不應該是相關的..如果你真的需要一種方式來使用該狀態,那麼只需添加一個鍵如:array_merge($ this-> twitter($ request),['status'=>'active' ])..之後,你可以簡單地使用它:'$ this-> results ['twitter'] ['status']' –

1

1:將結果存儲在變量然後按

$new_array = $this->twitter($request); 
$this->results['twitter'] = array_push($new_array,"active"); 

注:是你無法通過返回的結果作爲參數。所以你需要將它存儲在變量中並作爲參數傳遞。您可以通過引用傳遞一個變量的函數,因此函數可以修改變量

1

也許你想是這樣的:

array_push($this->results['twitter'], $this->twitter());

這將Twitter的()函數的返回推入您陣列。 請注意,array_push只返回包含項目的數量。

+0

'返回的數組長度'active'嗎? – stack

+0

這取決於您最終需要的陣列結構。 '$ newValue [$ this-> twitter()] =「active」; array_push($ this-> results ['twitter'],$ newValue);' – igi

相關問題