PHP错误地访问静态类成员

时间:2015-02-14 04:25:03

标签: php static phpunit

我有一个类作为成员变量的静态类的Mock实例,当我尝试引用静态方法时,我得到了对静态类成员的错误访问:

class Foo {
    private my_static_class;

    public testmethod() {
        $this->my_static_class = mock_of_static_class;
        $this->my_static_class::static_method(); // Incorrect access to static class member 
    }
}

使用 - >而不是::似乎没有解决,我最终得到了

Call to a member function static_method() on a non-object

编辑:我正在使用的框架将模拟实例作为字符串

返回

1 个答案:

答案 0 :(得分:0)

如果只将mock类作为字符串,请创建它的实例。

SMALL = RAND_NUM;

如果您只想调用静态方法,请使用call_user_func()

$this->my_static_class = new $mock_of_static_class_as_string();