在传递参考方面,IS是否与java相同?

时间:2010-11-09 03:17:06

标签: java php

PHP从java借用了大部分面向对象的功能。我想知道PHP和java是否都使用相同的pass by值概念?

我知道Java不是通过引用传递的。它只是通过值传递对象引用。 PHP怎么样? PHP支持是否通过引用传递?

1 个答案:

答案 0 :(得分:3)

在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中一样。