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