@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

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

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

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽