Andree
Andree

Reputation: 3103

PHP function, return by value or by reference?

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

Thanks! Andree.

Upvotes: 2

Views: 1481

Answers (2)

Andree
Andree

Reputation: 3103

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

Upvotes: 0

Mike B
Mike B

Reputation: 32145

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.

Upvotes: 7

Related Questions