Конструктор PHP, PHP

Конструктор класу викликається автоматично щоразу, коли створюються екземпляри класу та об'єкти з класу. У PHP ООП конструктор використовується для ініціалізації властивостей під час створення об'єкта. Конструктор виглядає як звичайний метод PHP, різниця полягає тільки в тому, що він починається з __ (двох символів підкреслення).

Конструктор класу PHP може містити стільки аргументів чи параметрів, скільки потрібно. Також можна визначити конструктор загалом без параметрів.

Важливо, що PHP-конструктор викликається лише один раз. І ми не можемо викликати конструктор явно, він викликається автоматично під час створення об'єкта.

Щоб створити екземпляр класу, ми використовуємо ключове слово new, і зараз викликається конструктор. У PHP батьківський конструктор викликається явно якщо визначено конструктор похідного класу. Якщо потрібен конструктор суперкласу, похідний клас потребує виклику parent::__construct() . Конструктор суперкласу може успадковуватись, якщо похідний клас не визначає конструктор сам. Наслідує конструктор так само, як і будь-який інший метод класу, якщо в суперкласі він не був оголошений як privat.

У PHP4 і нижче щодо конструктора використовувався метод із такою ж ім'ям, як і клас ( як і C++ і Java ). PHP5 ООП визначення конструктора будь-якого класу містить спеціальну функцію __construct() . Конструктор може містити аргументи відповідно до конкретних вимог. Усі об'єкти можуть мати вбудовану функцію-конструктор, яка ініціалізує під час створення об'єкта його властивості. PHP дозволяє створити один конструктор для кожного класу, і ми не можемо перевантажити конструктор.

Якщо існує кілька оголошених конструкторів, PHP будевикликати перший та ігнорувати інші. Конструктор має бути оголошений як public і може використовуватись поза класом. Якщо конструктор оголошений як private , може бути використаний лише з класом, у якому визначено. Якщо необхідно оголосити його як private, нам потрібно буде використовувати виклик статичної функції.

Так як конструктор є магічним методом, він матиме відмітну мітку магічних методів - два підкреслення на початку. Для визначення конструктора ми використовуємо ключове слово construct:

Приклад PHP-конструктора

Давайте припустимо, що ми маємо клас PHP Human , і він містить змінну name . Вихідний код буде виглядати так:

Тепер ми додамо конструктор у цей клас. Пам'ятайте, що в ООП PHP конструктори - це магічні методи, отже, вони починаються з двох символів підкреслення та ключового слова construct :

Створюємо об'єкти цього класу за допомогою ключового слова new:

У цьому прикладі ООП PHP ми створили об'єкти і ініціалізували змінну $name . Перший об'єкт зберігатиме в змінній $name значення "Joseph", а другий - "Taylor". Ми надали об'єктам значення під час створення, щоб уникнути плутанини. Якби для класу Human конструктор не було визначено, то об'єкти створювалися б так:

PHP-конструктор з кількома аргументами

Ми додамо нову змінну age до класу Human :

Наразі наш клас містить дві змінні для зберігання даних кожного об'єкта. Name і age представлені змінними $name та $age. Визначаємо конструктор ще раз, але цього разу з двома аргументами, один – щоб встановити екземпляр Name, а другий – age:

Ми створили два об'єкти, і вони містять початкові значення двох змінних-членів. Слід зазначити, що згідно з основами PHP ООП конструктор не можна викликати більше одного разу, але ми можемо змінювати значення змінних-членів.

Тому в класі Human ми створимо два методи, один встановлює вік, а другий ім'я. Конструктор використовується, щоб задати початкові значення будь-якої змінної. Надалі, якщо потрібно змінити це значення, ми будемо використовувати ці функції.

Той самий клас із двома додатковими методами:

Ми можемо викликати два нових методи змінити ім'я або вік. Додамо в приклад ще два методи, щоб вивести ім'я та вік:

Повний приклад використання конструктора класу PHP ООП з чотирма функціями:

Ще один приклад PHP-конструктора

Спочатку ми визначаємо конструктор для класу bookinfo. Коли буде створено об'єкти, ми передамо в конструктор значення для відповідних екземплярів.

Погляньмо, як використовується конструктор. Спочатку створюємо простий клас з однією властивістю та однією функцією:

Це простий клас, який містить одну змінну даних, назва машини, та метод виведення цієї назви.

Тепер додамо конструктор, який ставитиме значення name в момент створення об'єкта. В ООП PHP код конструктора буде виглядати так:

Тепер створюємо з класу об'єкт:

Виводимо значення змінної даних через виклик методу get_carname() :

Результат буде наступним:

Це найпростіший приклад створення конструктора з ініціалізацією значення членів об'єкта. Це значення не фіксоване. Ми можемо змінити його за потреби. Проте це чудовий спосіб ініціалізації об'єктів.

Використовуємо конструктор у прикладі об'єкта PHP ООП, який ми розглядали раніше. У класі bookinfo ми додаємонаступний код:

У прикладі після додавання коду ініціалізуються екземпляри класу, щоб створити об'єкти. Той самий функціонал досягається за допомогою конструктора:

Тепер об'єкти створені та ініціалізовані з назвами та цінами на момент створення об'єкта, це досягається за допомогою конструктора.

Давайте отримаємо доступ до методів get, щоб вивести ціни та назви книг. Використовуємо самі методи, як і раніше:

Цей PHP-код дає наступний результат:

Up to date astrology Up to date PHP Up to date DB 25 36 17

Ми бачимо, що отриманий результат той самий, але він досягнутий за допомогою конструктора.

ООП PHP приклад бази даних, в якому використовується конструктор класу PHP:

Переклад статті PHP Constructor був підготовлений дружньою командою проекту Сайтобудування від А до Я.