Деструктор PHP, PHP
Деструктор класу PHP ООП - це спеціальна функція (що належить до групи методів, відомих як магічні методи), яка автоматично викликається при видаленні об'єкта. Деструктор не приймає жодних параметрів. Поняття деструктора було введено у PHP5, який реалізує повноцінну об'єктно-орієнтовану модель. Дочірній клас може успадковувати деструктор від батьківського класу, якщо не реалізує деструктор сам.
Під час створення об'єкта може бути викликана функція PHP-конструктора для ініціалізації змінних-членів. Деструктор виконує обернену функцію, під час видалення об'єкта він звільняє пам'ять та ресурси сервера. Деструктор також є важливою функцією, оскільки ресурси сервера обмежені, а десятки програм різних окремих сайтів працюють на ньому одночасно.
Отже, завжди корисно використовувати PHP-деструктор. Наприклад, з метою безпеки з'єднання з базою даних може знадобитися миттєво закрити її сокет. У цьому випадку деструктор може бути дуже корисним.
Слід пам'ятати, що, на відміну від деяких інших мов програмування в ОВП PHP, існує прибиральник сміття, який видаляє об'єкти, коли вони більше не використовуються. Але якщо ми хочемо видалити об'єкт явно, PHP-деструктор підходить для цього.
Прибиральник сміття PHP видаляє об'єкти, що не використовуються, але це може зайняти деякий час, а до того моменту за об'єктом, що не використовується, будуть закріплені ресурси. Використовуючи деструктор, ми гарантуємо, що жоден ресурс не задіяний марно, він підвищує ефективність додатків та сайтів. Якщо ми говоримо про один об'єкт, використання деструктора не дасть помітних змін.
Але якщо програма складна, і в ній використовується безліч об'єктів, в цьому випадкувикористання PHP-деструктора може дати суттєвий ефект.
Синтаксис деструктора PHP
Деструктор в PHP не можна викликати явно, так само, як ми не можемо викликати явно конструктор:
Ще один важливий момент, що стосується деструктора: так само, як і конструктор, він викликається для об'єкта лише один раз – у момент видалення об'єкта.
Приклад деструктора PHP
Нижче наводиться простий приклад деструктора PHP:
Цей деструктор виводить повідомлення, що об'єкт видалено. Ми можемо закрити з'єднання сокету з базою даних, але я не пишу цей код. Насправді весь процес буде складнішим.
Сподіваюся, ви розібралися у загальному принципі роботи деструктора:
Інший ООП PHP приклад повного коду деструктора та конструктора:
У PHP ООП деструктор викликається лише один раз. Найкраще використовувати Parent::_destruct() . Але батьківський деструктор слід викликати після того місця, де розміщується код деструктора, щоб бути впевненим, що об'єкт не буде вилучений, перш ніж він був використаний у додатку.
Дивіться наведений нижче приклад:
Дана публікація є перекладом статті «PHP destructor», підготовленої дружньою командою проекту Інтернет-технології.