下面是輸出「15」的代碼,爲什麼?
function zz(&$x){
$x = $x + 5;
}
$x = 10;
zz($x);
echo $x;
請解釋
下面是輸出「15」的代碼,爲什麼?
function zz(&$x){
$x = $x + 5;
}
$x = 10;
zz($x);
echo $x;
請解釋
你傳遞的值作爲參數不是變量的直接值,而是它的傳遞通過引用,所以它給你15作爲輸出。
謝謝!
由於函數簽名定義了傳遞給函數的值應該通過引用傳遞。
如果你不知道這意味着什麼,我建議閱讀this paragraph on Wikipedia。
按設計工作。通過使用&
,您可以通過引用傳遞$x
,這意味着該函數對該變量所做的任何操作都將對設置爲10
的原始$x
執行。
如果您使用
function zz($x)
原$x
將留在10
,因爲只有可變值被傳遞給函數。
添加&表示您通過引用傳遞$ x變量。外部值在函數內被改變,而不是被改變的函數內的副本。
使用&和號:傳遞引用計算函數中的目的。
它只是改變原來的變量,並將其返回到同一個變量名稱,賦予它的新值。
看起來像來自Zend的模擬考試的問題。 – Gordon 2010-11-19 14:17:48
可能b但我在面試中被問到我回答錯誤..因此,想到把它放在這裏.. – 2010-11-19 14:22:24
*(相關)* [這是什麼符號在PHP中的意思](http://stackoverflow.com/questions/3737139 /參考什麼 - 做 - 這個符號,均在-PHP) – Gordon 2010-11-19 14:24:40