Re: [請益] insert array

看板PHP作者 (寶貝豬)時間16年前 (2009/03/25 10:51), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串1/1
※ 引述《josch ()》之銘言: (略) : 恩...老師教的全忘了XD, 傳陣列的時候是要傳址進去,php的方法跟C一樣要在前面加&嗎? : function宣告的地方有需要改嗎? php的call by reference允許以下兩種方式: 方式一: 叫做 call-time pass-by-reference, 這種方法雖可行, 但不被推薦. <?php $x=1; proc(&$x); echo $x; //結果會是2 function proc($a){ $a++; } ?> 方式一在php早期發展時就有了, 但是後來升級到php4.x(還是5.x?忘了)版時, 開發團隊對外聲明'不建議'如此使用. 所以在執行階段時, 會出現警告. 不過 可能為了讓舊版的php code能夠向上相容, 所以提供一個機制: 在php.ini當中, 若設定 allow_call_time_pass_reference = on 的話, 則不會出現警告. 方式二: 是一般屬於正常使用的方式, 在函式定義時就宣告call by reference. <?php $x=1; proc($x); echo $x; //結果也是2 function proc(&$a){ $a++; } ?> 至於維護到比較舊版的程式碼時, 或許有時會發現到以下'脫褲子放屁'的情況: <?php $x=1; proc(&$x); echo $x; //結果也是2 function proc(&$a){ $a++; } ?> php容許這樣的寫法, 視其為 call-time pass-by-reference, 結果如同上述的 方式一. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.104.187.65 ※ 編輯: bobju 來自: 59.104.187.65 (03/25 10:54)

03/25 10:58, , 1F
感謝bobju大大釋疑,原本設計的邏輯有點偏差,打算重寫
03/25 10:58, 1F
文章代碼(AID): #19oPmNCm (PHP)
文章代碼(AID): #19oPmNCm (PHP)