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中文网其他相关文章!