2010-04-18 8 views

Répondre

7

En PHP, tout est retourné par valeur par défaut (je suis sûr qu'il y a des exceptions à cela mais je ne peux pas penser à des atm). Sauf les objets (PHP> 5.0) qui sont passés par référence par défaut.

+0

Oui, il est passé à titre de référence. Merci ! – Andree

+0

Qu'avez-vous voulu dire par "ça" dans ce cas? Le code qui a provoqué votre question a-t-il renvoyé un objet ou? – Sam

0

Apparemment, il est renvoyé par référence. Ce code simple le prouve.

<?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 
Questions connexes