Я пытаюсь ссылаться на частную переменную объекта изнутри закрытия. Код, как представляется, работает, но он жалуется Fatal error: Cannot access self:: when no class scope is active in test.php on line 12
и Fatal error: Using $this when not in object context in test.php on line 20
.
Любые идеи о том, как выполнить одни и те же результаты, используя закрытие, сохраняя частные переменные и не создавая вспомогательные функции (побеждая всю идею частной переменной).
class MyClass
{
static private $_var1;
private $_var2;
static function setVar1( $value )
{
$closure = function () use ( $value ) {
self::$_var1 = $value;
};
$closure();
}
function setVar2( $value )
{
$closure = function () use ( $value ) {
$this->_var2 = $value;
};
$closure();
}
}
MyClass::setVar1( "hello" ); //doesn't work
$myclass = new MyClass;
$myclass->setVar2( "hello" ); //doesn't work