我有一个扩展到子类的抽象基类。在基类中,我有
protected CONST TYPE = '';
子类中的哪个被
覆盖protected CONST TYPE = 'mysql';
在父母中,我定义了
public function getTableName() {
/*
Code here
*/
var_dump(self::TYPE); exit;
}
即使我在子类中调用$this->getTableName()
,它也会转储一个空字符串。我猜我不了解这里的作用域;鉴于它是由孩子调用的,是不是相对于孩子的范围?还是因为它是由父级定义的,它是否始终在父级的范围内?这是常量的问题吗?我正在运行PHP 7.3。
答案 0 :(得分:0)
因为一旦用一个值定义了一个常数,它就保持该值。这样做是因为该值是“常数”
您应该改用protected static $type = ''