引用傳遞

可以將一個變數通過引用傳遞給函式,這樣該函式就可以修改其參數的值。語法如下:
<?phpfunctionfoo(&$var){$var++;}$a=5;foo($a);//$ais6here?>注意在函式調用時沒有引用符號――只有函式定義中有。光是函式定義就足夠使參數通過引用來正確傳遞了。在最近版本的php中如果把&用在foo(&$a);中會得到一條警告說“Call-timepass-by-reference”已經過時了。
以下內容可以通過引用傳遞:
•變數,例如foo($a)
•New語句,例如foo(newfoobar())
•從函式中返回的引用,例如:
<?phpfunction&bar(){$a=5;return$a;}foo(bar());?>詳細解釋見引用返回
任何其它表達式都不能通過引用傳遞,結果未定義。例如下面引用傳遞的例子是無效的:
<?phpfunctionbar()//Notethemissing&{$a=5;return$a;}foo(bar());//自php5.1.0起導致致命錯誤foo($a=5)//表達式,不是變數foo(5)//導致致命錯誤?>這些條件是php4.0.4以及以後版本有的。

相關詞條

熱門詞條

聯絡我們