tags:

views:

65

answers:

2

Hi there!

When I use return statement in PHP, will the result be returned by value or by reference?

Thanks! Andree.

+5  A: 

In PHP, everything is returned by value by default (I'm sure there are exceptions to this but I can't think of any atm). Except objects (PHP>5.0) which are passed by reference by default.

Mike B
Yes, it is passed by reference. thanks !
Andree
A: 

Apparently, it is returned by reference. This simple code proofs it.

<?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
Andree