我需要在方法中更改静态变量。代码看起来像这样:
function get_something()
{
static $cache = array();
if (!$cache) {
$cache = $this->compute_cache();
}
return $cache;
}
我可以获得一份价值副本。
$reflection = new ReflectionMethod($object, 'get_something');
$vars = $reflection->getStaticVariables();
有没有办法改变方法中的值?
P.S。
我无法更改该方法的代码。
答案 0 :(得分:0)
否则您无法更改方法中的静态变量。他们是该方法的私人。
但是,如果将$ cache定义为类中的静态变量,而不是方法,则可以访问它。
e.g。
class A {
static $cache;
}
$object = new A();
$object::$cache = 33;
echo $object::$cache;