PHP 7 added support for anonymous classes, however I can't seem to find any information regarding associated scoping issues. I know I can use the use keyword with callables/closures to access outer scoped variables (like function() use ($outer) { // do work with $outer }), is there any way to do that with an anonymous class?
use
function() use ($outer) { // do work with $outer }
I would like to be able to do so without relying on the anonymous class constructor arguments, and without doing things like adding a setter method or public property to store the value after the instantiation.
Here's an example:
$outer = 'something'; $instance = new class { public function testing() { var_dump($outer); // would like this to dump the string 'something' } };
another solution could be
$outer = 'something'; $instance = new class($outer) { private $outer; public function __construct($outer) { $this->outer = $outer } public function testing() { var_dump($this->outer); } };
2.1m questions
2.1m answers
60 comments
57.0k users