@EarthFM

Как работать со свойствами в php?

Почему это код работает если $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/>";

?>
  • Вопрос задан
  • 2438 просмотров
Решения вопроса 1
nepster-web
@nepster-web
Вроде в php.ini можно выставлять "жесткость" ошибок.
php.net/manual/ru/function.error-reporting.php

У вас скорее всего не жестко. Обычно такие "простенькие" моменты, как вызов несуществующей переменной игнорируют в ошибках.

Но в любом случае можно настроить по вкусу.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы