我想從封閉內引用一個對象的私有變量。下面的代碼似乎工作,但它抱怨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
嘿 - 山寨;-) – DMI 2010-09-15 22:53:20
@戴夫實際上,我是寫之前,我看了你的答案。無論如何,你+1作爲解決方案:p – Artefacto 2010-09-15 23:24:43
heh。快速的並行開發。感謝+1,並且以比我更加努力的方式返回實物! :-) – DMI 2010-09-15 23:31:09