Магические методы в PHP
Общие сведения
Методы __construct(), __destruct(), __call(), __callStatic(), __get(), __set(), __isset(), __unset(), __serialize(), __unserialize(), __sleep(), __wakeup(), __toString(), __invoke(), __set_state(), __clone() и __debugInfo() относятся к магическим методам
Магические методы требуется объявлять с модификатором public, за исключением __construct(), __destruct() и __clone()
serialize
Функция генерирует сохраняемое представление переменной для хранения или передачи PHP-значений между скриптами без потери типа и структуры
Функция возвращает строку, которая содержит представление в виде потока байтов
Для обратного преобразования вызывают функцию unserialize()
При выполнении сериализации объекта PHP выполняет магические методы __serialize() или __sleep(), чтобы разрешить объекту перед сериализацией произвести очистку и другие похожие операции. Когда объект восстанавливается функцией unserialize(), вызывается магический метод __unserialize() или __wakeup().
#Синтаксис
function serialize(mixed $value): string
Методы __serialize() и __unserialize()
Функция serialize() проверяет, определили ли в классе магический метод с названием __serialize(). Цель метода вернуть ассоциативный массив пар «ключ — значение» для представления объекта в сериализованной форме. PHP проигнорирует метод serialize(), и вместо него вызовет метод __serialize()
Функция unserialize() проверяет доступность магического метода __unserialize(). PHP передаст методу массив, который восстановил и вернул метод __serialize(), если метод определили в классе.
Источник: https://www.php.net/manual/ru/language.oop5.magic.php
Метод __toString()
Метод __toString() разрешает классу выбирать, как класс будет реагировать, когда с ним обращаются как со строкой
Метод __invoke()
Метод __invoke() вызывается, когда скрипт пытается выполнить объект как функцию.
$obj = new TestClass();
$obj(5);
Метод __set_state()
Этот статический метод вызывается для тех классов, которые экспортируются функцией var_export().
$a = new A();
$b = var_export($a, true);
Метод __debugInfo()
Этот метод вызывается функцией var_dump(), когда требуется вывести список свойств объекта
Источники
Связанные темы
Оператор разрешения видимости в php
Позднее статическое связывание
Методы создания экземпляра класса в php
Автоматическая загрузка классов
Наследование с помощью extends в php
Конструкторы и деструкторы в php






