Is it possible to access classes/objects reffered as self
, static
and $this
in anonymous callbacks in PHP? Just like this:
class Foo {
const BAZ = 5;
public static function bar() {
echo self::BAZ; // it works OK
array_filter(array(1,3,5), function($number) /* use(self) */ {
return $number !== self::BAZ; // I cannot access self from here
});
}
}
Is there any way to make it behave as with usual variables, using use(self)
clause?
Just use the standard way:
Foo::BAZ;
or
$baz = self::BAZ;
... function($number) use($baz) {
$baz;
}
With PHP5.4 it will be. For now it's not possible. However, if you only need access to public properties, method
$that = $this;
function () use ($that) { echo $that->doSomething(); }
For constants there is no reason to not use the qualified name
function () { echo Classname::FOO; }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With