Волшебство __ получает метод считывания для статических свойств в PHP

public static function __get($value)

не работает, и даже если это сделало, это так происходит, что мне уже нужно волшебство __, получают метод считывания, например, свойства в том же классе.

Это, вероятно - вопрос "да" или "нет", таким образом, это возможно?

60
задан 14 August 2009 в 22:24

1 ответ

Объединение __callStatic и call_user_func или call_user_func_array может предоставить доступ к статическим свойствам в классе

PHP Пример:

class myClass {

    private static $instance;

    public function __construct() {

        if (!self::$instance) {
            self::$instance = $this;
        }

        return self::$instance;
    }

    public static function __callStatic($method, $args) {

        if (!self::$instance) {
            new self();
        }

        if (substr($method, 0, 1) == ') {
            $method = substr($method, 1);
        }

        if ($method == 'instance') {
            return self::$instance;
        } elseif ($method == 'not_exist') {
            echo "Not implemented\n";
        }
    }

    public function myFunc() {
        echo "myFunc()\n";
    }

}

// Getting $instance
$instance = call_user_func('myClass::$instance');
$instance->myFunc();

// Access to undeclared
call_user_func('myClass::$not_exist');
0
ответ дан 1 November 2019 в 10:42

Другие вопросы по тегам:

Похожие вопросы: