J'essaie de référencer une variable privée d'un objet à l'intérieur d'une fermeture. Le code ci-dessous semble fonctionner, mais il se plaint Fatal error: Cannot access self:: when no class scope is active in test.php on line 12
et Fatal error: Using $this when not in object context in test.php on line 20
. Des idées pour obtenir les mêmes résultats en utilisant une fermeture tout en gardant les variables privées et sans faire de fonctions auxiliaires (en éliminant toute l'idée d'une variable privée).Accès à des variables privées à partir d'une fermeture
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
Heh - imitateur ;-) – DMI
j'écrivais @ Dave réellement avant d'avoir lu votre réponse. De toute façon, +1 pour vous en tant que règlement: p – Artefacto
Heh. Développement parallèle rapide. Merci pour le +1, et revenu en nature alors que vous mettez beaucoup plus d'efforts que moi! :-) – DMI