class A {
private $aa;
protected $bb = 'parent bb';
function __construct($arg) {
//do something..
}
private function parentmethod($arg2) {
//do something..
}
}
class B extends A {
function __construct($arg) {
parent::__construct($arg);
}
function childfunction() {
echo parent::$bb; //Fatal error: Undefined class constant 'bb'
}
}
$test = new B($some);
$test->childfunction();
问题:如何在孩子中显示父变量?预期结果将回显“父 bb”
原文由 Kuntau 发布,翻译遵循 CC BY-SA 4.0 许可协议
该变量是继承的并且不是私有的,因此它是当前对象的一部分。
以下是响应您关于使用
parent::
的更多信息请求的附加信息:当您想为父类中的方法 添加 额外功能时,请使用
parent::
。例如,想象一个Airplane
类:现在假设我们要创建一种新类型的飞机,它也有一个导航器。您可以扩展 __construct() 方法以添加新功能,但仍使用父级提供的功能:
这样,您可以遵循 DRY 开发原则,但仍然提供您想要的所有功能。