在父级中定义的方法中访问受保护的const

时间:2019-06-02 01:28:12

标签: php

我有一个扩展到子类的抽象基类。在基类中,我有

protected CONST TYPE = '';

子类中的哪个被

覆盖
protected CONST TYPE = 'mysql';

在父母中,我定义了

public function getTableName() {
    /*
    Code here
    */
    var_dump(self::TYPE); exit;
}

即使我在子类中调用$this->getTableName(),它也会转储一个空字符串。我猜我不了解这里的作用域;鉴于它是由孩子调用的,是不是相对于孩子的范围?还是因为它是由父级定义的,它是否始终在父级的范围内?这是常量的问题吗?我正在运行PHP 7.3。

1 个答案:

答案 0 :(得分:0)

因为一旦用一个值定义了一个常数,它就保持该值。这样做是因为该值是“常数”

您应该改用protected static $type = ''