可以將一個(gè)變量通過(guò)引用傳遞給函數(shù),這樣該函數(shù)就可以修改其參數(shù)的值。語(yǔ)法如下:
<?php
function foo(&$var)
{
$var++;
}
$a=5;
foo($a);
// 這里 $a 是 6
?>
以下內(nèi)容可以通過(guò)引用傳遞:
foo($a)
從函數(shù)中返回的引用,例如:
<?php
function foo(&$var)
{
$var++;
}
function &bar()
{
$a = 5;
return $a;
}
foo(bar());
?>
任何其它表達(dá)式都不能通過(guò)引用傳遞,結(jié)果未定義。例如下面引用傳遞的例子是無(wú)效的:
<?php
function foo(&$var)
{
$var++;
}
function bar() // 注意缺少 &
{
$a = 5;
return $a;
}
foo(bar()); // 導(dǎo)致 notice 信息
foo($a = 5) // 表達(dá)式,不是變量
foo(5) // 導(dǎo)致致命錯(cuò)誤
class Foobar
{
}
foo(new Foobar()) // 自 PHP 7.0.7 起生成通知
// 注意:只有變量應(yīng)該通過(guò)引用傳遞
?>