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();
问题:如何在孩子中显示父变量?预期结果将回显’parent bb’
echo $this->bb;
该变量是继承的并且不是私有的,因此它是当前对象的一部分。
以下是应您要求提供有关使用的更多信息的附加信息parent:::
parent::
parent::当您想从父类向方法添加额外功能时使用。例如,想象一个Airplane类:
Airplane
class Airplane { private $pilot; public function __construct( $pilot ) { $this->pilot = $pilot; } }
现在假设我们要创建一种新类型的飞机,它也有一个导航器。您可以扩展 __construct() 方法以添加新功能,但仍使用父级提供的功能:
class Bomber extends Airplane { private $navigator; public function __construct( $pilot, $navigator ) { $this->navigator = $navigator; parent::__construct( $pilot ); // Assigns $pilot to $this->pilot } }
这样,您可以遵循DRY开发原则,但仍然提供您想要的所有功能。