从php中的Parent类访问子属性

时间:2014-01-11 09:24:27

标签: java php oop visibility

我来自java背景,最近在PHP中测试了一些OOP方法。我发现父类允许使用Child类属性。下面的代码描述了我想说的内容。

<?php
    class ParentClass {
        public static function test() {
            echo "hello world ". implode(',', static::$prop);
        }
    }

    class ChildClass extends ParentClass {
        public static $prop = ['a' , 'b'];
    }

ChildClass::test();

?>

在上面的代码中,ParentClass使用函数test()中的$ prop变量。这只是输出而没有错误。但是,Java中不允许这样做。这种方法在PHP中背后的原因是什么?

1 个答案:

答案 0 :(得分:2)

Java没有Late static bindings的概念:

  

“后期绑定”来自于static ::不会使用定义方法的类来解析,而是使用运行时信息来计算。

如果您使用self::,您将拥有Java所知的行为。但是static::在运行时解析。