2

给定以下类层次结构:

class ParentClass {
    private static $_test;

    public function returnTest() {
        return static::$_test;
    }
}
class ChildClass extends ParentClass {
    // intentionally left blank
}
$child = new ChildClass();
echo $child->returnTest();

生成的输出是以下错误消息:
Fatal error: Cannot access property ChildClass::$_test
有没有办法防止后期静态绑定发生?由于我正在调用未覆盖的父类的函数,因此我觉得应该允许我执行上述操作。

4

2 回答 2

2

您正在从实例化类调用静态属性。只需使用类的名称:

return static::$_test;
于 2013-02-07T17:53:47.600 回答
2

使用return self::$_test而不是return static::$_test.

这确保您访问定义$_test的类的字段。returnTest

请参阅http://www.php.net/manual/en/language.oop5.late-static-bindings.php以供参考。

于 2013-02-07T17:59:09.623 回答