參數使用變數名稱與程式使用名稱雖然相同,但是會被視爲不同的資料,不會互相影響,這種做法叫做 Call By Value。
<?php
$x = 2;
function showX($x)
{
$x = $x * 2;
echo $x . "\n";
}
showX($x);
echo $x . "\n";
?>
輸出結果如下
4
2
另外一種是...
無論在程式的任何地方使用到該變數,會將該變數在記憶體中的 address 傳給程式使用,所以使用變數的地方都會指向同一塊記憶體。
一旦更動變數時,使用該變數的地方的值都會跟著改變。
<?php
$x = 2;
function showX(&$x)
{
$x = $x * 2;
echo $x . "\n";
}
showX($x);
echo $x . "\n";
?>
輸出結果如下
4
4
reference from http://php.net/manual/en/language.references.pass.php
reference from IBSN 978-986-476-232-3