Магические методы 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 ООП и делают код кратким и чистым. Его проще поддерживать, он имеет более оптимизированную структуру.

Вадим Дворниковавтор-переводчик статьи «PHP Magic Methods»