Wow!! You're my king! Thanks, that syntax is completely new to me! Great, another thing learned today! :)
Cheers mate! <[EMAIL PROTECTED]> wrote in message [EMAIL PROTECTED]">news:[EMAIL PROTECTED]... > > change your createParent function to return by reference: > > function &createParent() > { > return new Parent; > } > > it returns 'two' and 'two' for me > > Regards, > - reynard > > >Hi all, > > > >I came across the following weird situation. I don't get it, I hope some of > >you can explain the logic of it all. > > > >[begin code]------------------------------- > ><?php > > > >/* Define class Parent. Its constructor sets an instance of Child in > >property $child and passes itself to Child's constructor. */ > >class Parent > >{ > > var $child; > > var $property = 'one'; > > > > function Parent() > > { > > $this->child = &new Child($this); > > } > >} > > > >/* Define class Child. Its constructor assigns a reference of the Parent > >object that contains this Child object to property $parent. */ > >class Child > >{ > > var $parent; > > > > function Child(&$p) > > { > > $this->parent = &$p; > > } > >} > > > >/* This function instantiates and returns a new Parent class. */ > >function createParent() > >{ > > return new Parent; > >} > > > >/* $p is a reference of the Parent object created by createParent(). */ > >$p = &createParent(); > > > >/* The $property property of the Parent object is changed. */ > >$p->property = 'two'; > > > >/* Since $p should be the same object as $p->child->parent, the following > >should print twice the same. */ > >print $p->property . '<BR>'; > >print $p->child->parent->property . '<BR>'; > > > >?> > >[end code]----------------------------------- > > > >Now the problem is: IT DOES NOT PRINT TWICE THE SAME!!! > >Instead it prints 'two' and then 'one', which indicates that > >$p->child->parent is another object than $p. The problem is that the object > >*returned* by createParent() is not the same object as the object that is > >*created* by createParent(). Just replace the line $p = &createParent(); by > >$p = &new Parent(); -- this works perfectly fine! Conclusion: createParent() > >does not return the object it creates! > > > >Someone knows why this ain't working and how to solve it?!? Hope so, can't > >wait to hear from you guys. > > > >Thanks in advance, > > > >Tim Molendijk > > > __________________________________________________________________ > The NEW Netscape 7.0 browser is now available. Upgrade now! http://channels.netscape.com/ns/browsers/download.jsp > > Get your own FREE, personal Netscape Mail account today at http://webmail.netscape.com/ -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php