>> Тест всех версий PHP 5.4+ на 3v4l << </a>
PHP 5.4+ WAY:
Это стало значительнопроще, чем PHP 5.4, где $this
больше не является грязным:
class My_Class {
const CLASS_CONSTANT = 'test value';
private function my_function() {
$lambda_function = function() {
// $this is actually inherited from the parent object, so
// you don't even need a use() statement
echo $this::CLASS_CONSTANT;
// Or just use self, that's inherited too
echo self::CLASS_CONSTANT;
};
$lambda_function();
}
}
PRE 5.4 WAY:
Сделайте анонимную функцию закрытием - введя область видимостипеременные в функцию - и вызовите константу из этого:
class My_Class {
const CLASS_CONSTANT = 'test value';
private function my_function() {
$self = $this;
$lambda_function = function() use ($self) { // now it's a closure
echo $self::CLASS_CONSTANT;
} // << you forgot a ;
lambda_function(); // << you forgot a $
}
}
К сожалению, вы не можете use ($this)
YET.Они работают над этим.Я ожидаю, что это будет работать в PHP> = 5.4.