В PHP существует ряд специальных методов, называемых "магическими". Они вызываются автоматически при определенных действиях с объектами класса. Вот некоторые из них:
__construct(): Вызывается при создании нового экземпляра класса. Используется для инициализации объекта.__destruct(): Вызывается при уничтожении объекта (например, при окончании выполнения скрипта или явном вызове unset()). Используется для освобождения ресурсов.__call($name, $arguments): Вызывается при попытке вызвать недоступный (невидимый в текущем контексте) метод объекта. $name - имя вызванного метода, $arguments - массив его аргументов.__callStatic($name, $arguments): Аналогичен __call(), но вызывается при попытке вызвать недоступный статический метод.__get($name): Вызывается при попытке чтения недоступного свойства объекта. $name - имя свойства.__set($name, $value): Вызывается при попытке записи в недоступное свойство объекта. $name - имя свойства, $value - присваиваемое значение.__isset($name): Вызывается при проверке наличия недоступного свойства с помощью isset() или empty(). $name - имя свойства.__unset($name): Вызывается при попытке удаления недоступного свойства с помощью unset(). $name - имя свойства.__sleep(): Вызывается перед сериализацией объекта с помощью serialize(). Должен вернуть массив имен свойств, которые следует сериализовать.__wakeup(): Вызывается сразу после десериализации объекта с помощью unserialize(). Может использоваться для восстановления связей или ресурсов.__toString(): Вызывается при попытке преобразовать объект в строку (например, при выводе с помощью echo). Должен вернуть строковое представление объекта.__invoke(...$args): Вызывается при попытке использовать объект как функцию.__set_state(array $properties): Вызывается при восстановлении объекта с помощью var_export(). Получает массив свойств, экспортированных var_export().__clone(): Вызывается при клонировании объекта с помощью clone. Используется для глубокого копирования (например, объектов внутри объекта).Важно использовать эти методы с осторожностью, так как их некорректное использование может привести к непредсказуемому поведению кода.