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

Reply via email to