Estoy tratando de hacer referencia a una variable privada de un objeto desde dentro de un cierre. El código siguiente parece funcionar, pero se queja Fatal error: Cannot access self:: when no class scope is active in test.php on line 12
y Fatal error: Using $this when not in object context in test.php on line 20
.Acceso a variables privadas desde dentro de un cierre
Alguna idea de cómo lograr los mismos resultados utilizando un cierre mientras se mantienen las variables privadas y sin hacer funciones de ayuda (lo que frustra la idea de una variable privada).
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
Je - imitador ;-) – DMI
@Dave realidad estaba escribiendo antes de leer su respuesta. De todos modos, +1 para usted como solución: p – Artefacto
Heh. Desarrollo paralelo rápido. ¡Gracias por el +1, y devuelto en especie mientras pones mucho más esfuerzo que yo! :-) – DMI