PHP - 在方法中更改静态变量

时间:2018-06-11 09:16:52

标签: php variables static

我需要在方法中更改静态变量。代码看起来像这样:

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。
我无法更改该方法的代码。

1 个答案:

答案 0 :(得分:0)

否则您无法更改方法中的静态变量。他们是该方法的私人。

但是,如果将$ cache定义为类中的静态变量,而不是方法,则可以访问它。

e.g。

class A {
  static $cache;
}

$object = new A();
$object::$cache = 33;
echo $object::$cache;