Classes, Constructors, References and Recursion

From: Date: Wed, 20 Apr 2005 17:51:25 +0000
Subject: Classes, Constructors, References and Recursion
Groups: php.general 
Request: Send a blank email to php-general+get-213519@lists.php.net to get a copy of this message
Hi, I have this piece of code: class test1 {
       var
               $data = 'hi',
               $node = false;
       function test1() {
               $this->node =& new test2($this);
       }
} class test2 {
       var
               $data = 'yoyo',
               $root = false;
       function test2(&$root) {
               $this->root =& $root;
       }
} $test =& new test1(); echo('<pre>'); print_r($test); echo('</pre>'); And it outputs: test1 Object ( [data] => hi [node] => test2 Object
       (
           [data] => yoyo
           [root] => test1 Object
               (
                   [data] => hi
                   [node] =>  *RECURSION*
               )
       )
) while it should output: test1 Object ( [data] => hi [node] => test2 Object
       (
           [data] => yoyo
           [root] => *RECURSION*
       )
) I know there are some difficulties using references in constructors, but I think this should be right.. I'm using PHP/4.3.11. Can anyone tell me what is wrong with this code or why PHP behaves this way? regards, Evert

« previous php.general (#213519) next »