子类是否继承父常量,如果是,如何访问它们?
问题真的说明了一切。
我在父类中定义了常量。我试过了,但它不起作用。$this->CONSTANT_1
class MyParentClass{
const CONSTANT_1=1
}
class MyChildClass extends MyParentClass{
//want to access CONSTANT_1
}
问题真的说明了一切。
我在父类中定义了常量。我试过了,但它不起作用。$this->CONSTANT_1
class MyParentClass{
const CONSTANT_1=1
}
class MyChildClass extends MyParentClass{
//want to access CONSTANT_1
}
我认为您需要像这样访问它:
self::CONSTANT_1;
或者“parent”,它将始终是在父类中建立的值(即,常量的不变性保持不变):
parent::CONSTANT_1;
需要注意的一件有趣的事情是,您实际上可以覆盖子类中的const值。
class MyParentClass{
const CONSTANT_1=1;
}
class MyChildClass extends MyParentClass{
const CONSTANT_1=2;
}
echo MyParentClass::CONSTANT_1; // outputs 1
echo MyChildClass::CONSTANT_1; // outputs 2
您还可以使用静态键访问父方法中的子项中的常量定义。
<?php
class Foo {
public function bar() {
var_dump(static::A);
}
}
class Baz extends Foo {
const A = 'FooBarBaz';
public function __construct() {
$this->bar();
}
}
new Baz;