Магічні методи і зумовлені константи в php
У PHP є набір спеціальних зумовлених констант і магічних методів для ваших проектів. На відміну від звичайних констант, які можна встановлювати за допомогою define (). значення зумовлених констант залежить від того, де вони використовуються, і є інформацією тільки для читання про код і PHP системі. Магічні методи можна використовувати в ваших класах для отримання доступу до спеціального функціоналу PHP.
В даному уроці ми розглянемо кілька корисних зумовлених констант і магічних методів з прикладами використання в коді.
зумовлені константи
Зумовлені константи використовуються для отримання інформації про вашому коді. Ім'я такий константи пишеться великими літерами між здвоєними підкресленнями, наприклад, __LINE__ і __FILE__. Ось кілька корисних зумовлених констант, доступних в PHP:
- __LINE__ повертає номер рядка в початковому файлі, де використовується константа:
магічні методи
Магічні методи представляють гачки для спеціального функціоналу PHP. Їх імена пишуться маленькими літерами з двома попередніми підкресленнями, наприклад, __construct () і __destruct ().
__construct () - магічний метод, який PHP викликає для створення екземпляра вашого класу. Він приймає будь-яку кількість аргументів.
__destruct () - магічний метод, який викликається, коли об'єкт знищується колектором PHP. Даний метод не сприймає аргументів і зазвичай використовується для виконання спеціальних операцій, наприклад, для закриття з'єднання з базою даних.
Наступні кілька магічних методів призначені для маніпуляцій з властивостями, і представляють спосіб для PHP обробити звернення до властивостей і методів, які було визначено (або недоступні).
PHP викликає метод __get () в який отримує контексті, якщо властивість не визначено (або недоступне). Метод приймає один аргумент - ім'я властивості. Він повинен повернути значення, яке буде оброблятися як значення властивості.
Метод __set () викликається для невизначеного властивості в заданому контексті. Даний метод приймає два аргументи, ім'я властивості і значення.
У вище наведеному коді властивість name не визначене в класі. У коді робиться спроба призначити даній властивості значення "Alireza" і PHP викликає магічний метод __set (). Він отримує "name" в якості аргументу $ prop і "Alireza" як $ value. і зберігає значення в приватному масиві $ myArray. Метод __get () працює в схожій манері. При виведенні $ obj-> name викликається метод __get () і йому передається значення "name" як аргумент $ prop.
Є й інші магічні методи, які допомагають маніпулювати недоступними властивостями, як у наведеному прикладі: __isset (). __unset () і __toString (). Обидва методи __isset () і __unset () запускаються функціями з такими ж іменами, але без підкреслень в PHP.
__isset () перевіряє, встановлено властивість чи ні. Даний метод приймає один аргумент - властивість, яке треба перевірити. Метод __unset () приймає один аргумент, ім'я властивості, яке потрібно скинути.
У багатьох випадках зручно уявлення об'єкта як рядки, наприклад, для виведення користувачеві або іншому процесу. Зазвичай PHP являє об'єкт як ідентифікатор в пам'яті, що погано для таких функцій. Метод __toString () допомагає уявити об'єкт як рядок. Метод запускається в багатьох ситуаціях, де об'єкт використовується як рядок, наприклад, echo "Hello $ obj". Також його можна викликати безпосередньо, як будь-який інший публічний метод.
s3ri0usman
mr.esterio

За рахунок отримання інформації відразу по двох каналах (зір і слух) ефективність навчання значно перевершує навчання по книгах. А домашні завдання і онлайн-тести дозволять вам постійно думати на мові, що вивчається і відразу перевіряти свої знання!


Якщо ви давно хочете як слід вивчити HTML, то у мене для Вас є чудова новина!

Якщо ви вже вивчили HTML і хочете рухатися далі, то наступним кроком буде вивчення технології CSS.

Якщо ви хочете розібратися з поняттями домену і хостингу, навчитися створювати бази даних, закачувати файли сайту на сервер по FTP, створювати піддомени, налаштовувати поштові скриньки для свого сайту і стежити за його відвідуваністю, то цей курс створений спеціально для вас!