Tôi đang cố gắng tham chiếu biến riêng của một đối tượng từ bên trong một đóng. Mã bên dưới dường như hoạt động, nhưng nó phàn nàn Fatal error: Cannot access self:: when no class scope is active in test.php on line 12
và Fatal error: Using $this when not in object context in test.php on line 20
.Truy cập các biến riêng tư trong một đóng cửa
Bất kỳ ý tưởng nào về cách thực hiện các kết quả tương tự bằng cách đóng cửa trong khi vẫn giữ các biến riêng tư và không có chức năng trợ giúp (đánh bại toàn bộ ý tưởng về biến riêng tư).
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 - copycat ;-) – DMI
@ Dave Tôi đã thực sự viết nó trước khi tôi đọc câu trả lời của bạn. Dù sao, +1 cho bạn như là một giải quyết: p – Artefacto
Heh. Phát triển song song nhanh chóng. Cảm ơn bạn đã +1 và đã trở lại bằng hiện vật khi bạn nỗ lực nhiều hơn tôi! :-) – DMI