Почему это код работает если $this->name обращается к полю, а этого поля нет? В java сразу ошибка будет, а тут всё выводится)
<?php
class User {
public function __construct($name, $age) {
$this->name = $name;
$this->age = $age;
}
public function getName() {
return $this->name;
}
public function getAge() {
return $this->age;
}
}
$obj = new User("Ilya", 11);
echo $obj->getName();
echo $obj->getAge();
?>
И когда класс Student наследуется от User. В конструкторе обращаемся к полям суперкласса, но их там нет и всё ровно работает. Почему так работает, или как-то надо по другому написать, объясните плиз.
<?php
require_once 'index.php';
class Student extends User {
public function __construct($name, $age) {
parent:: __construct($this->name=$name, $this->age=$age);
}
}
$obj = new Student("Ilya", 2222);
echo $obj->getName() . "<br/>";
echo $obj->getAge() . "<br/>";
?>