Reference oddities...

From: Date: Sat, 26 Aug 2000 17:47:29 +0000
Subject: Reference oddities...
Groups: php.general 
Request: Send a blank email to php-general+get-13797@lists.php.net to get a copy of this message
Hi, I boiled a problem I'm having down to the code below: <? class Main { function Main() { $this->test1 = new Test1(&$this, "first test"); $this->test2 = new Test2(&$this, "second test"); } } class Test1 { function Test1($super, $name) { $this->super = $super; $this->name = $name; } } class Test2 { function Test2($super, $name) { $this->super = $super; $this->name = $name; } } $m = new Main(); print "\$m->test1->super->test2->name: " . $m->test1->super->test2->name . "<BR>"; print "\$m->test2->super->test1->name: " . $m->test2->super->test1->name . "<BR>"; ?> When I run this script (PHP4.0.0,Apache1.3.12 on Mandrake 7.0), I get this output: $m->test1->super->test2->name: $m->test2->super->test1->name: first test The classes Test1 and Test2 both have a constructor that is called with a reference to the super-class Main. The output I was expecting is: $m->test1->super->test2->name: second test $m->test2->super->test1->name: first test Of course, if I change the code to: <? class Main { function Main() { $this->test2 = new Test2(&$this, "second test"); $this->test1 = new Test1(&$this, "first test"); } } class Test1 { function Test1($super, $name) { $this->super = $super; $this->name = $name; } } class Test2 { function Test2($super, $name) { $this->super = $super; $this->name = $name; } } $m = new Main(); print "\$m->test1->super->test2->name: " . $m->test1->super->test2->name . "<BR>"; print "\$m->test2->super->test1->name: " . $m->test2->super->test1->name . "<BR>"; ?> I get: $m->test1->super->test2->name: second test $m->test2->super->test1->name: What am I doing wrong? A reference is just like a pointer, right? Shouldn't the classes Test1 and Test2 be able to reference all members of their super-class Main, even if they were instantiated later than themselves??? Thanks for any explanation! Arjan -- ººººººººººººººººººººººººººººººººººººººººººººººººº Arjan Haverkamp aka: void Borneolaan 21 url: http://www.avoid.org 1217 GX Hilversum email: void@avoid.org The Netherlands "There's no gravity, +31-35-6234660 the earth just sucks..." ººººººººººººººººººººººººººººººººººººººººººººººººº

« previous php.general (#13797) next »