引用傳遞

引用傳遞

在C++中,函式參數的傳遞方式有引用傳遞。所謂引用傳遞是指在調用函式時將實際參數的地址傳遞到函式中,那么在函式中對參數所進行的修改,將影響到實際參數。

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

相關詞條

熱門詞條

聯絡我們