Магические методы PHP
В PHP ООП есть определенные методы, которые называются магическими методами. __construct(), __destruct(), __get(), __set(), __call(), __sleep(), __wakeup(), __clone(), __toString() - это одни из самых важных магических методов, которые были введены в PHP 5. Они определяются с помощью имени, перед которым в качестве префикса указывается __. Когда кто-нибудь видит два подчеркивания, он понимает, что имеет дело с магическим методом...

Магические методы PHP
Магические методы PHP позволяют разработчикам совершать удивительные трюки в объектно-ориентированном PHP. Магические методы срабатывают в ответ на определенные действия или события. Рассмотрим в качестве примера конструктор, который мы обсуждали ранее.
Существуют определенные характеристики метода конструктора, которые отличают его от других и делают его уникальным. Во-первых, он вызывается только один раз в момент создания объекта, во-вторых, мы не можем вызвать его явно. Он автоматически вызывается, когда создается экземпляр класса, и используется для инициализации переменных-членов. Мы видим, что этот метод отличается от других, используемых в ООП PHP. По таким характеристикам магические методы и выделяют в отдельную группу.
В общем, магические методы PHP - это предопределенные методы, выполняемые при каком-либо конкретном событии, они автоматически вызываются, без вызова функции, когда удовлетворяется какое-либо из заданных условий. Например, __construct всегда вызывается при создании экземпляра класса. Магические методы весьма полезны, они предоставляют удивительный функционал для объектно-ориентированного программирования на PHP.
Список магических методов PHP с их функционалом:
__construct:
Это конструктор, который используется в основах ООП PHP для инициализации переменных в момент создания объекта. __construct, как правило, это первый метод в любом классе, но класс не обязательно должен содержать этот магический метод.
__destruct:
__destruct() - используется для удаления объекта и освобождения ресурсов, используемых конкретным объектом. Вы можете легко понять его принадлежность к магическим методам по префиксу из двух подчеркиваний.
__get:
__get - это один из магических методов PHP, который используется для доступа к данным ресурсов, доступ к которым закрыт. Это кажется невозможным, для этого как раз используется магический метод PHP __get. Он прослушивает запросы к конкретным свойствам, которые имеют ограничения по доступу или являются невидимыми.
__set:
__set() - используется, когда объект класса участвует в определении значения того или иного свойства, которое является недоступным или доступным только в данном классе.
__tostring:
Технически это самый важный из всех магических методов извлечения информации в PHP. Когда к объекту применяется метод echo, вызывается этот магический метод.
Заключение:
Магические методы обеспечивают удобство PHP 5 ООП и делают код кратким и чистым. Его проще поддерживать, он имеет более оптимизированную структуру.