PHP 访问父类变量

2022-08-30 11:20:06
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”


答案 1
echo $this->bb;

该变量是继承的,不是私有的,因此它是当前对象的一部分。


以下是针对您的请求的其他信息,以获取有关使用的更多信息:parent::

当您希望从父类向方法添加额外功能时使用。例如,假设一个类:parent::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开发原则,但仍然可以提供所需的所有功能。


答案 2

只是呼应它,因为它是遗传的

echo $this->bb;

推荐