操縱參數我與PHP相對缺乏經驗,我試圖做一些改變現有的代碼庫。我有帶有一個數組爲參數的方法,包括:在PHP
public function get_ids(array $order)
{
...
return $ret_val;
}
欲附加的元素添加到該陣列中,與鍵count
配對。我知道那個鑰匙不存在。我從PHP文檔中瞭解到,所有變量都是通過引用傳遞的:
函數定義本身足以通過引用正確傳遞參數 。由於PHP 5.3.0,你會得到一個警告說, 「呼叫時間傳遞通過引用」已經過時,當你在 FOO使用&(& $ A);.而作爲PHP 5.4.0中,呼叫時間 取出傳遞通過引用,所以使用它會引發一個致命錯誤。
然而,當我這樣做:
public function get_ids(array $order)
{
...
$order['count'] = 5;
return $ret_val;
}
,然後做在調用這個方法的方法var_dump
,有一個爲「計數」沒有鑰匙。但是,如果我的get_ids
方法返回之前做一個var_dump
右邊,有明確是爲count
的關鍵。
這是怎麼回事?我顯然不理解PHP的一位負責人,但我平時的谷歌搜索技巧完全失敗了。
這報價是當你調用* *的功能,而不是當你是* *定義功能。如果這是預期的行爲,您仍然應該將函數定義爲通過引用接受其參數。 – nickb 2013-04-07 02:35:20
@nickb OHHHHHH。是的。完全瞭解現在的情況。我認爲他們的意思是「簡單地定義函數意味着它將通過引用傳遞」。顯然不是。謝謝! – 2013-04-07 02:51:14