Reputation: 3103
When I use return statement in PHP, will the result be returned by value or by reference?
Thanks! Andree.
Upvotes: 2
Views: 1481
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
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