引用傳遞:可以將一個(gè)變量通過(guò)引用傳遞給函數(shù)藕届,這樣該函數(shù)就可以修改其參數(shù)的值彻舰。語(yǔ)法如下:
<?php
function foo(&$var)
{
$var++;
}
$a=5;
foo($a);
// $a is 6 here
?>
注意在函數(shù)調(diào)用時(shí)沒(méi)有引用符合,只有函數(shù)定義中有鸿摇。光是函數(shù)定義就足夠使參數(shù)通過(guò)引用來(lái)正確傳遞了滥酥。
以下內(nèi)容可以通過(guò)引用傳遞:
- 變量更舞;
- new 語(yǔ)句;
- 從函數(shù)中返回的引用坎吻。
示例:
<?php
function &bar()
{
$a = 5;
return $a;
}
foo(bar());
?>
任何其他表達(dá)式都不能通過(guò)引用傳遞缆蝉,結(jié)果未定義。例如下面引用傳遞的例子是無(wú)效的:
<?php
function foo(&$var)
{
$var++;
}
function bar() // Note the missing &
{
$a = 5;
return $a;
}
foo(bar()); // 自 PHP 5.0.5 起導(dǎo)致致命錯(cuò)誤,自 PHP 5.1.1 起導(dǎo)致嚴(yán)格模式錯(cuò)誤
// 自 PHP 7.0 起導(dǎo)致 notice 信息
foo($a = 5) // 表達(dá)式刊头,不是變量
foo(5) // 導(dǎo)致致命錯(cuò)誤
?>