Hi, At first $ref =& $this; produced fatal error because of the bug (not by design). For example $ref->prop =& $this; worked and works without errors.
So my patch shouldn't be reverted in any case. At second disallowing such assignments and passign $this by reference will breake a lot of PHP4 code (Mamaba CMS). In PHP4 passing $object by refernce and by value had completely different semantic. I don't see any reason to disallow 100% proper code (like the the following). class Child { function Child($parent) { $parent->children[] =& $this; } } Of course using "=& $this" user can breake $this value, but other languages (C++) allows this too. I don't think we should be paranoiacs. Thanks. Dmitry. > -----Original Message----- > From: Derick Rethans [mailto:[EMAIL PROTECTED] > Sent: Monday, October 03, 2005 5:09 PM > To: PHP Developers Mailing List > Subject: [PHP-DEV] $ref =& $this; > > > Hello, > > Dmitry committed a fix earlier to ignore the & in the > statement above. I > think this is not a good thing to do as it's simply > conceptually wrong. > The first thing is that ignoring syntax without issuing a warning is > dubious because people might think it does actually work, and > secondly > because I think that the code above is wrong anyway - somewhat in the > same way that "$this = new foo();" is wrong. > > There is never any need to assign $this by reference, nor to > pass it by > reference to a function as it's an object anyway, making the > references > pointless - I would even go as far as disallowing passing $this by > references to a function - where the reference has to be > ignored again, > otherwise it allows you to chantge $this to a different object with: > > class Foo { > function byRef(&$f) { > $f = new Bar(); > } > > function modifyThis() { > $this->byRef($this); > } > } > > I think we should prevent people from writing syntax like > this, as it is > not obvious what is going to happen. This means that we should revert > Dmitry's patch. > > regards, > Derick > > -- > Derick Rethans > http://derickrethans.nl | http://ez.no | http://xdebug.org > > -- > PHP Internals - PHP Runtime Development Mailing List > To unsubscribe, visit: http://www.php.net/unsub.php > > -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php