Уроки 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);
?>

Tags: php

Recent Posts

Як вивчити німецьку мову легко і весело? З допомогою Beste Freunde!

Німецька часто вважається складною мовою. Так, німецька лексика має «важкий» характер. Так, є дійсно дуже… Read More

27/09/2020

Опалення і гаряча вода коли треба, а не коли включать

Тепло в домі і гаряча вода в будь-який час для багатьох мешканців багатоквартирних та приватних… Read More

19/09/2020

Інструкція по завантаженню відео з сервісу TikTok (безкоштовно та без watermark)

Якщо ви ще не чули про TikTok, тоді рекомендуємо вам спочатку ознайомитися з цим коротким… Read More

17/09/2020

Що є в бюджетному ноутбуці – на які характеристики розраховувати?

Пройшли ті часи, коли пристойний ноутбук коштував від 1000 доларів. Сьогодні можна купити досить непоганий… Read More

16/09/2020

Що краще: цифрове телебачення Т2 чи інтернет-телебачення

Сучасне життя неможливо уявити без телебачення. Воно дозволяє дізнаватися про події в Україні та світі,… Read More

02/09/2020

Гіпоалергенна подушка. Чому вона важлива?

Зараз знайдеться мало людей, в яких немає алергії на продукти або пилок рослин. Вважається, що… Read More

28/08/2020