Уроки PHP – Конструктори і Деструктори
PHP – це одна з найбільш широко використовуваних мов програмування. У неї велика спільнота відданих розробників, і на PHP побудовано багато популярних фреймворків. Одними з найяскравіших прикладів можна назвати Magento і WordPress. Якщо ви хочете стати успішним програмістом – ця мова підійде вам для вивчення. А наші уроки по PHP можуть вам у цьому допомогти.
У попередньому уроці ми розглянули Класи PHP і трохи введення в ООП. Ми зробили огляд примірників класу, ключового слова $this
, розглянули успадкування і видимість класів. Однак це ще не все. Є ще інформація, яка допоможе вам краще зрозуміти PHP. І в цьому уроці ви її отримаєте.
Конструктор класів
Припустимо, вам потрібно, щоб якийсь код виконувався автоматично всякий раз, коли ви створюєте новий об’єкт. Метод-конструктор PHP __construct()
– це саме те, що ви шукаєте. Коли ви додаєте цей метод в один з ваших класів, він буде автоматично викликатися щоразу, коли цей клас використовується для створення екземпляра нового об’єкта.
Завдяки цій можливості метод __construct()
часто використовується розробниками PHP для виклику всього того, що може знадобитися об’єкту перед його використанням. Метод також підтримує параметри, і якщо вони вам потрібні, ви можете включити їх в конструктор. Це дозволить об’єкту набувати значень при його створенні.
Врахуйте, що ви не можете використовувати кілька методів __construct()
з різним набором параметрів. Якщо ви хочете, щоб якийсь об’єкт поводився по-різному, наприклад, в залежності від параметрів, ви повинні обробляти цю логіку всередині одного і того ж методу __construct()
.
А тепер розглянемо простий приклад. Створимо новий клас під назвою Lyudina
. У нього будуть деякі відкриті властивості і метод конструктора. Метод __construct()
прийме ці властивості в якості параметрів, ініціалізує їх і виведе просте повідомлення. Потім ми будемо використовувати цей клас для створення екземпляра нового об’єкта з ім’ям $ivan
. Як ви побачите, повідомлення із зазначеним методом __construct()
відразу з’явиться.
<?php // клас Lyudina з базовим прикладом методу __construct() class Lyudina { public $vik; public $imya; public function __construct($imya, $vik) { $this->vik = $vik; $this->imya = $imya; echo "Створено новий екземпляр класу Lyudina"; } } $ivan = new Lyudina("Іван", 25); ?>
Властивості методу __construct() за замовчуванням
Уявіть, що у вас є властивість, яка повинна бути за замовчуванням для класу Lyudina
. Припустимо, що це вік повноліття. Якщо не вказано інше – буде прийматися ця властивість за замовчуванням. Як це може виглядати в PHP?
<?php class Lyudina { public $vik; // в методі __construct встановлюємо вік за замовчуванням public function __construct( $vik = 18 ) { $this->vik = $vik; } } $stepan = new Lyudina; // у Степана буде дефолтний вік – 18 $ivan = new Lyudina( 25 ); // а тут ми переписуємо дефолтне значення ?>
Клас деструктор
Крім конструктора класу, існує також деструктор класу. Це деструкторний метод __destruct()
. Цей метод викликається автоматично при знищенні об’єкта. Ви також можете явно викликати метод деструктора. Для цього ви можете використовувати функцію unset()
. Хороше застосування деструкторів – виконання певних завдань по завершенню життєвого циклу об’єкта, таких як звільнення ресурсів, запис файлів логу, закриття з’єднання з базою даних і т.д.
<?php // клас Lyudina з базовим прикладом методу __destruct() class Lyudina { public function __destruct() { echo "Екземпляр класу Lyudina був знищений"; } } $ivan = new Lyudina("Іван", 25); // або unset($ivan); ?>
This post was last modified on 08/02/2019 16:19
Останні пости
Генрі Форд
Людина має два мотиви поведінки — один справжній та інший, що гарно звучить Генрі Форд…
Фрідріх Ніцше
Не треба додумувати надто багато. Так ви створюєте проблеми, яких не існувало Фрідріх Ніцше
Такий різний інвертор! Вибираємо між кондиціонерами Inverter, Inverter DC та Full DC
Літо в розпалі, а значить якраз час задуматися про покупку кондиціонера. Але як не загубитися…
Корисні поради щодо вибору розсувних дверей
Варто знати, що функціональність і дизайн працюють рука об руку, коли ви використовуєте розсувні двері.…