Уроки 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); ?>
Останні пости
Як вибрати ідеальний ноутбук: Повний гайд
Вибір ноутбука може бути складним завданням у світі, де ринок переповнений варіантами на будь-який смак… Читати далі
Томас Едісон
Наш великий недолік в тому, що ми занадто швидко опускаємо руки. Найбільш діючий метод досягти… Читати далі
Найкрасивіші та найбільш вражаючі мости з усього світу (ТОП-10)
Міст — це щось більше, ніж просто споруда, яка поєднує два береги. Для того, щоб… Читати далі
Соломон
Життя нас вчить, що свою пару ми пізнаємо, коли розлучаємося, своїх братів ми пізнаємо, коли… Читати далі
Річард Бах
Жодне бажання не дається тобі окремо від сили, що дозволяє його здійснити. Хоча, можливо, для… Читати далі