首页  >  文章  >  后端开发  >  在 PHP 中访问受保护的父类变量:为什么使用 `$this->bb` 而不是 `parent::bb`?

在 PHP 中访问受保护的父类变量:为什么使用 `$this->bb` 而不是 `parent::bb`?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-10-22 21:20:29412浏览

Accessing Protected Parent Class Variables in PHP: Why Use `$this->bb` 超过 `parent::bb`?bb` 超过 `parent::bb`?" />

在 PHP 中访问父类变量

提供的代码演示了子类无法访问从其父类继承的受保护变量 $bb 的问题。要解决此问题,可以使用语法 $this->bb 来访问变量。

<code class="php">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 $this->bb; // Outputs 'parent bb'
    }
}

$test = new B($some);
$test->childfunction();</code>

使用 $this->bb 意味着继承的变量现在是当前对象的一部分,并且可以像任何其他实例变量一样访问。

附加说明:

虽然使用 $this->bb 解决了眼前的问题,但了解 $this 和 $this 之间的区别很重要->和parent:: 访问继承的变量和方法时。

$this->指的是当前对象,而parent::指的是父类。 $这个->可用于直接访问继承的变量,而parent::用于调用父类方法或访问父类静态变量。

例如,如果您想重写父类方法,同时仍访问原始类来自父类的方法,您可以使用以下语法:

<code class="php">class Child extends Parent {
    function myMethod() {
        parent::myMethod(); // Calls the parent class's myMethod()
    }
}</code>

以上是在 PHP 中访问受保护的父类变量:为什么使用 `$this->bb` 而不是 `parent::bb`?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn