Bir kapağın içinde özel değişkenleri erişme

0 Cevap php

Ben bir kapak içinde bir nesnenin özel bir değişken başvurmak için çalışıyorum. Aşağıdaki kod çalışır gibi görünüyor, ama Fatal error: Cannot access self:: when no class scope is active in test.php on line 12 ve Fatal error: Using $this when not in object context in test.php on line 20 yakınıyor.

Nasıl özel değişkenleri tutarken bir kapatma kullanarak aynı sonuçları başarmak ve (bir özel değişkenin fikrine yenerek) yardımcı işlevlerini yapmadan herhangi bir fikir.

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

0 Cevap