PHP - изменить статическую переменную в методе - PullRequest
0 голосов
/ 11 июня 2018

Мне нужно изменить статическую переменную в методе.Код выглядит примерно так:

function get_something()
{
    static $cache = array();
    if (!$cache) {
        $cache = $this->compute_cache();
    }
    return $cache;
}

Я могу получить копию значения.

$reflection = new ReflectionMethod($object, 'get_something');
$vars = $reflection->getStaticVariables();

Есть ли способ изменить значение в методе?

PS
Я не могу изменить код этого метода.

1 Ответ

0 голосов
/ 11 июня 2018

Нет, вы не можете изменить статическую переменную в методе.Они являются частными для метода.

Однако, если вы определите $ cache как статическую переменную в классе, а не как метод, вы сможете получить к нему доступ.

например

class A {
  static $cache;
}

$object = new A();
$object::$cache = 33;
echo $object::$cache;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...