On Friday 27 June 2008, Andi Gutmans wrote:
> I lean towards the use(...) syntax.

Me too.

> >   * I provided a patch variant that only stores $this if $this is
> >     explicitely used inside a closure [..]
>
> Safest not to take shortcuts. You get yourself into trouble with things
> which will stop working. -1 on this optimization.

I believe that always implicitly referencing $this is a mistake.
Not only does it turn every lambda that is created inside an object into a 
heavier closure, it also makes it impossible for the closure to outlive the 
object, which can, in some rare cases, dramatically increase memory 
consumption, in which case things will also stop working.
Also, given how many people put all their code into classes, this may cause 
problems more often than we might think, although the wasted memory will 
usually go undetected, making this whole thing a source for nasty heisenbugs.

If the optimization of only referencing $this when it is actually used is a 
dangerous shortcut, the alternative should be to not implicitly reference 
$this at all and require it to be importet through "use ($this)".

> >   * Do you want closures in PHP?
>
> I think most people here feel it's useful or are at least indifferent.

There are those who want them and those who don't know that they want them.

Gesundheit
  Wag

-- 
The army is launching a military theme park in Virginia with high-tech 
simulator rides.
The Project is expected to cost 900 million dollars and none of the rides will 
ever end.
 - Studio 60

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

Reply via email to