PHP. Введение в ООП. Классы. Объекты. Конструкторы
Сегодня мы создадим простой класс и объект этого класса. Класс — это «шаблон» некоторой реальной сущности. Это еще одно преимущество ООП — рассматривать данные как реальные сущности. Вокруг нас много сущностей — человек, автомобиль, дом и пр. Именно так мы будем мыслить в рамках ООП.
Как вы понимаете, человек одновременно простой и сложный тип данных. Если бы мы просто писали программу, в которой нам важно количество людей, то это был бы простой тип данных. Но теперь нам важно понимать и рассматривать человека как сущность, которая может взаимодействовать с другими сущностями. У каждой сущности есть свои отличительные признаки. У человека это имя, фамилия.В классах это называется свойства (или поля класса, или атрибуты класса). Также человек может совершать какие-то действия — ходить, дышать. В рамках классов это называется методы (функции) класса. Пример класса смотрите в коде ниже.
Еще несколько замечаний по классу:
ключевое слово $this — его цель чем-то напоминает цель this в javascript, а именно обращение к свойству или методу класса в рамках объекта класса.
Что такое объект? Объекты — это реальные люди. Класс можно было рассматривать как «шаблон» людей. Соответственно, каждый объект по своему уникален, но в тоже время у каждого объекта есть свойства и методы (описанные в классе), которые присущи абсолютно всем людям.
И напоследок важно сказать о конструкторе. Конструктор — это метод, которые вызывается сразу после создание объекта (строка 28 в коде). Его цель — начальная настройка объекта (установка свойств и прочее). В реальных проектах в конструкторах, например, можно инициализировать подключение к БД и пр.
Код урока
<?php
/*
** Классы - имеют свои переменные (свойства, поля) и функции (методы)
** Конструктор - вызывается сразу после создания объекта
**/
class Man {
public $name;
public function __construct($age) {
echo "Вызов конструктора";
$this->age = $age;
}
public function getName() {
return $this->name;
}
public function setName($name) {
$this->name = $name;
return $this->name;
}
}
$kamil = new Man(27);
echo "<br>";
print_r($kamil);
echo "<br>";
echo $kamil->getName();
echo "<br>";
echo $kamil->setName("Камиль");
echo "<br>";
echo $kamil->age;
$kamil->surname = "Абзалов";
echo "<br>";
print_r($kamil);
?>
0 Comments