Доступ к переменной parent из подкласса php и родительского ключевого слова?

У меня есть родительский класс и подкласс, родительский класс имеет конструктор, который устанавливает 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'; } } 

Во-первых, родитель – это зарезервированное слово. Во-вторых, не используйте var если вы не используете более старую версию PHP. Вы можете использовать защищенные. Вам не нужно использовать родительское ключевое слово для доступа к переменной, потому что дочерний класс должен наследовать его. Вы можете получить доступ к нему через $this->myVar

EDIT уточнить

Вам нужно использовать 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(); ?> 

Вот рабочий пример этого кода.

parent ключевого слова должен использоваться для доступа к методам или статическим переменным только для родительского класса, поэтому ваш первый код является правильным, так как $myVar не является статическим.

Попробуй это :

 echo parent::$myVar;