public static function __get($value)
не работает, и даже если это сделало, это так происходит, что мне уже нужно волшебство __, получают метод считывания, например, свойства в том же классе.
Это, вероятно - вопрос "да" или "нет", таким образом, это возможно?
Объединение __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');