Уроки 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
Останні пости
Уроки SQL — як знайти повторювані записи (дублі) в базі даних
По-перше, щоб не допустити подібних ситуацій, вам заздалегідь потрібно надавати унікальні значення у таблицях. Так…
Ремонт чи купівля нової шини? Варіанти ремонту гуми
Заплатка на шині, як правило, є простим і дешевим варіантом порівняно з покупкою нового колеса,…
Гігієна кота: основні правила та рекомендації ветеринарів
Коти належать до охайних тварин — приблизно половину свого життя вони витрачають на «гігієнічні процедури».…
Збірні швидкомонтовані будинки — основне, що потрібно знати
Щось готове до вживання, як от піца чи локшина, вже давно зайняло почесне місце в…
Популярність, переваги та сфери застосування металосайдингу
Сьогодні акцент на екологічному дизайні та матеріалах має високі показники та популярність. Дизайнери обирають екологічно…