访问从子类PHP和父关键字父母变量?(Accessing a parents variable fr

2019-06-25 01:36发布

我有一个父类和子类,父类有一个建筑工,设置一个var ,我想使用该var在子类中,我有工作,但通过关键字我感到困惑parent

 class Sub extends Parent {
     public function foo() {
         echo $this -> myVar;
     }
 }

 class Parent {
     var $myVar;
     public function __construct() {
          $this -> myVar = 'a';
     }
 }

这个工作,我得到的价值myVar ,但我应该可以使用关键字parent ,当我做我得到一个错误,例如,

 class Sub extends Parent {
     public function foo() {
         echo parent -> myVar;
     }
 }

 class Parent {
     var $myVar;
     public function __construct() {
          $this -> myVar = 'a';
     }
 }

Answer 1:

首先,家长是一个保留字。 第二关,不使用var除非您使用PHP的旧版本。 你可以使用受保护的。 你不需要使用父关键字来访问该变量,因为孩子上课要继承它。 您可以通过访问它$this->myVar

编辑澄清

你只需要使用parent::访问基类或方法时static的基类的变量。 如果您尝试访问的基类的非静态变量,你会得到一个错误Access to undeclared static property" fatal error:

这里有让你开始一个例子。

<?php
class Animal{
     protected $myVar;
     public function __construct() {
          $this->myVar = 'a';
     }
 }

class Cat extends Animal {
     public function foo() {
         echo $this->myVar;
     }
 }

$cat = new Cat(); 
$cat->foo(); 

?> 

下面是该代码的工作示例。



Answer 2:

关键字parent应该被用来访问方法或仅父类的静态变量,所以你的第一个代码是正确的一个,因为$myVar也不是一成不变的。



Answer 3:

试试这个 :

echo parent::$myVar;


文章来源: Accessing a parents variable from subclass php and parent keyword?