This is based on a bug submitted at http://bugs.php.net/bug.php?id=45604
Description: ------------ When creating a normal function inside a class and calling it, the function doesn't have access to $this. "Fatal error: Using $this when not in object context" When creating a lambda function inside a class, $this is visible from the new function's scope and can be accessed normally. Wouldn't it be better (and maybe safer) to allow the use of $this as a closure instead of passing it to the new lambda function? Currently trying to use $this as a closure dies with a "Fatal error: Cannot use $this as lexical variable" error. Example for the suggestion. $x = function () use ($this) { return $this->hello; }; Reproduce code: --------------- > <?php > > class something > { > public $hello = 'Hello world!'; > > public function world() > { > $x = function () { return $this->hello; }; > return $x(); > } > } > > $s = new something(); > echo $s->world(); > > ?> Expected result: ---------------- Not to be able to use $this.