В этой части учебника будет рассказываться про конструктор и деструктор классов или на английском construct и destruct, это пожалуй самый важный элемент в классе, в PHP 7, также тоже есть.
Конструктор:
Это предопределённый метод, который вызывается во время создания объекта класса, вы можете, к примеру, выводить на экран надпись или свойство.
Важно:
Конструктор и деструкторr они вызываются автоматически, при создание и удаление объекта.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | // Создаём класс User class User { // Объявление свойства name public $name = "Ваня"; // Конструктор класса public function __construct () { echo $this -> name; } } // Создаём объект класса User $user = new User(); |
Вот какой результат.
Как видите, мы больше не какой метод для вывода не используем или само свойство тоже не выводим, оно выводится во время объявления метода класса, так как именно в конструкторе прописали, что должно выводится свойство name
.
Также конструкторы созданы для того, что бы давать значение свойствам, для этого в круглых скобках конструктора пишем параметры, как у функции, в самом конструкторе, свойствам присваиваем эти параметры.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | // Создаём класс User class User { // Объявление свойства name public $name; // Конструктор класса public function __construct ($name, $surname) { $this -> name = $name; $this -> surname = $surname; $this -> show_name(); } // Метод для вывода имени public function show_name () { echo "Имя: " . $this -> name . "</br>"; echo "Фамилия: " . $this -> surname . "</br>"; } } // Создаём объект класса User $user = new User("Вова", "Пупкин"); |
Как видите, внутри конструктора могут работать и методы, мы туда поместили метод, который выводит на экран имя и фамилию, он тоже будет запускаться во время объявления объекта, вот результат программы.
Как видите всё работает.
В принципе, на этом этапе учебника про конструкторы особо не чего сказать, ещё подробнее о них будет в других частях про ООП.
Деструктор:
Про него практически не чего говорить, кроме того, что он удаляет весь объект, после того как закончится скрипт, или не будет переменных (Ссылки) которые ссылаются на него.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | // Создаём класс User class User { // Объявление свойства name public $name; // Конструктор класса public function __construct ($name, $surname) { $this -> name = $name; $this -> surname = $surname; } // Деструктор класса public function __destruct () { echo "Деструктор сработал"; } // Метод для вывода имени public function show_name () { echo "Имя: " . $this -> name . "</br>"; echo "Фамилия: " . $this -> surname . "</br>"; } } // Создаём объект класса User $user = new User("Вова", "Пупкин"); $user -> show_name(); // Вывод имени |
Вот результат.
Как видите, после того как программа закончила работу, в конце срабатывает деструктор, он удаляет объект и выводит на экран эту надпись.
Деструктор нужно использовать, так как, объект хранится в оперативной памяти, а переменная, это только ссылка на объект в оперативной памяти, и если вы удалите переменную, то объект от этого, не пропадёт, так там и останется, поэтому всегда в классе нужно использовать деструктор.
Вывод:
Как видите это не большая статья, но в ней рассматривается одна из важнейших тем в ООП, это конструктор и деструктор или на английском construct и destruct в PHP 7, Если вам что то не понятно, то это тема подробнее будет затрагиваться в следующих частях.