由於PHP借用了java的大部分面向對象特性。我想知道PHP和java是否都使用相同的值傳遞概念?在通過引用方面,IS與java相同嗎?
我知道Java的不reference.Its只是對象引用是按值傳遞通過。如何PHP? PHP支持是否通過引用傳遞?
由於PHP借用了java的大部分面向對象特性。我想知道PHP和java是否都使用相同的值傳遞概念?在通過引用方面,IS與java相同嗎?
我知道Java的不reference.Its只是對象引用是按值傳遞通過。如何PHP? PHP支持是否通過引用傳遞?
在PHP中,你只能通過引用傳遞的東西,如果你聲明函數和垃圾它與&號:
function &return_by_reference() {
$something = make_something();
return $something;
}
function increment(&$n) {
// This changes $n because it is a reference parameter
$n++;
}
有通話時傳遞的引用以及(即由基準時,傳遞變量因爲它提出了意外行爲的危險,你電話功能),但我不會去了。更好的做法是將參數聲明爲在函數簽名中通過引用傳遞。
作爲對象:在PHP 4中,對象是所有值傳遞。在PHP 5中,對象的引用是按值傳遞的,就像在Java中一樣。
這是否會伴隨遞歸方法的性能提升? (由於沒有複製一堆成員變量) – 2010-11-09 03:25:12
@Christian Mann:數據在需要時被複制。它被稱爲「複製寫入」原則。 「一堆成員變量」---或者你在談論對象?如果是這樣 - 在php5中,所有對象都通過引用傳遞。 – zerkms 2010-11-09 03:28:39
這實際上很酷。 – 2010-11-09 03:29:22
我相信,此行爲已更改爲PHP5的,從默認的傳遞按值默認傳遞通過引用變量。 – 2010-11-09 03:23:01
「PHP借用了大部分Java的面向對象特性」 - 這是一篇荒謬的陳述(以及其餘部分所依據的謂詞)。你需要擴大你的視野Chandu – symcbean 2010-11-09 11:57:08