Hello Derick,

Monday, October 3, 2005, 3:09:22 PM, you wrote:

> 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.

Same here.


Best regards,
 Marcus

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to