如何在 PHP 中访问父类变量?

Susan Sarandon
发布: 2024-10-22 22:08:29
原创
257 人浏览过

How to Access Parent Class Variables in PHP?

在 PHP 中访问父类变量:综合指南

在 PHP 中访问父类变量对于理解继承和面向对象编程至关重要概念。在下面给出的示例中,我们有两个类,A 和 B,其中 A 类作为父类,B 类作为子类。

class A {
    private $aa;
    protected $bb = 'parent bb';
}

class B extends A {
    function childfunction() {
        echo parent::$bb; // Error: Undefined class constant 'bb'
    }
}
登录后复制

当我们尝试访问受保护的变量时,就会出现问题(bb) 使用parent::$bb 从子类B 获取父类A。这会导致致命错误,因为 $bb 被定义为受保护的,这意味着它可以在类本身和子类中访问,但不能直接从类外部访问。

解决方案:

要解决这个问题,我们可以使用 $this 关键字来引用当前对象:

echo $this->bb;
登录后复制

$this 关键字提供对当前类中受保护和私有变量和方法的访问,在这种情况下允许我们显示 $bb 变量的值。

附加信息:使用parent::

除了使用 $this,我们还可以利用parent::语法从父类访问变量和方法。与 $this 不同,当我们想要覆盖或扩展父类的功能时,使用parent::。

例如,假设我们想要创建一个新类来扩展 Airplane 类并添加一个 navigator 属性:

class Airplane {
    private $pilot;
    function __construct($pilot) {
        $this->pilot = $pilot;
    }
}

class Bomber extends Airplane {
    private $navigator;
    function __construct($pilot, $navigator) {
        parent::__construct($pilot); // Call parent constructor
        $this->navigator = $navigator;
    }
}
登录后复制

在这种情况下,我们重写了 Bomber 类中的 __construct() 方法,但我们仍然使用parent::__construct() 来确保维持 Airplane 类的原始功能。

理解 $this 和 Parent:: 之间的区别对于有效利用 PHP 中的继承并创建健壮且可维护的代码至关重要。

以上是如何在 PHP 中访问父类变量?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!