[PHP-DEV] Re: [PHP-QA] $obj = new foo() patch From: Andi Gutmans (andi <email protected>)
Date: 11/10/00

I have removed the patch "yet again" until I can study your bug report more.
This is starting to annoy me :)

Andi

At 01:44 PM 11/10/00 +0300, Kirill Maximov wrote:
>Andi Gutmans wrote:
> >
> > Guys,
> >
> > I have submitted a patch to the Zend Engine which is considered
> > experimental. It is supposed to fix the problem with the $obj = new foo()
> > statement when the constructor of foo() assigns $this by reference to other
> > symbol table entries. Basically, the Zend Engine will explicitly assign new
> > foo() by reference to $obj because this is pretty much the only thing which
> > makes sense in this case.
> > NOTE: If you do $obj2 = $obj1 = new foo(), "$obj2 = $obj1" will still
> > assign by value and not by reference.
> > This patch is only meant to fix this problematic bug which has about 5
> > entries in the bugs database.
> > Please check it out. If there are any problems/concerns with this bug it is
> > best to leave it out for 4.0.4 but it should not harm anyone's scripts.
> > The following bugs are probably solved now: 6529, 6896, 7454, 7455, 7482
> > Anyway, please grab a fresh CVS tree and check that your OOP code still
> > works :)
> > Thanks!
> > Andi
>
>This code doesn't work no more as it did before:
>
><?php
>class B {
> function bb() {
> global $a;
> echo "b";
> $a->aa();
> }
>}
>class A {
> function aa() {
> echo "A";
> }
>}
>
>function t() {
>
>global $a;
>$a = new A;
>$a->aa();
>
>global $b;
>$b = new B;
>$b->bb();
>}
>
>t();
>?>
>
>Output should be AbA.
>I get:
>
>Ab
> Fatal error: Call to a member function on a non-object in
> /h/home/kir/public_html/a.php on line 18
>
>--
>
> With best regards,
> Kirill Maximov
> QA team.

---
Andi Gutmans <andi <email protected>>
http://www.zend.com/

-- PHP Development Mailing List <http://www.php.net/> To unsubscribe, e-mail: php-dev-unsubscribe <email protected> For additional commands, e-mail: php-dev-help <email protected> To contact the list administrators, e-mail: php-list-admin <email protected>