PHP函数,按值返回还是按引用返回?

时间:2010-04-18 22:32:59

标签: php

当我在PHP中使用return语句时,结果是通过值还是引用返回的?

谢谢! ANDREE。

2 个答案:

答案 0 :(得分:7)

在PHP中,默认情况下,所有内容都按值返回(我确定有例外,但我不能想到任何atm)。除了默认情况下通过引用传递的对象(PHP> 5.0)。

答案 1 :(得分:0)

显然,它是通过引用返回的。这个简单的代码证明了它。

<?php

class InsideObject
{
    public $variable;
}

class OutsideObject
{
    private $insideObject;

    public function __construct()
    {
        $this->insideObject = new InsideObject();
        $this->insideObject->variable = '1';
    }

    public function echoVar()
    {
        echo $this->insideObject->variable;
    }

    public function getInsideObject()
    {
        return $this->insideObject;
    }
}

$object = new OutsideObject();
$object->echoVar(); // should be 1

$insideObject = $object->getInsideObject();
$insideObject->variable = '2';

$object->echoVar(); // should be 2