【问题标题】:Accessing child property from Parent class in php从 php 中的 Parent 类访问子属性
【发布时间】:2014-01-30 09:20:36
【问题描述】:

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

<?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 中这种方法背后的原因是什么?

【问题讨论】:

    标签: java php oop visibility


    【解决方案1】:

    Java没有Late static bindings的概念:

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

    如果您使用self::,您将获得Java 中的行为。但是static:: 在运行时解析。

    【讨论】:

      猜你喜欢
      • 2012-01-30
      • 1970-01-01
      • 2013-03-24
      • 2019-04-02
      • 1970-01-01
      • 2023-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多