Магические методы в PHP

Магические методы — методы, которые переопределяют действие 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(), когда требуется вывести список свойств объекта


    Источники
    Последнее изменение: 24.07.2026 07:00


    Связанные темы
    Здесь пока нет комментариев
    Добавлять комментарии могут только авторизованные пользователи

    Авторизоваться
    Я буду рекламой
    Я тоже буду рекламой
    И я
    ВВЕРХ