__construct() — вызывается при new ClassName()__destruct() — при уничтожении объекта__get($name) / __set($name, $value) — доступ к несуществующим или защищённым свойствам__call($name, $args) — вызов несуществующего метода__toString() — конвертация объекта в строку__invoke() — вызов объекта как функции: $obj()__clone() — после клонирования объекта__serialize() / __unserialize() — контроль сериализацииМагические методы медленнее обычных. __get/__set затрудняют статический анализ — IDE не «видит» свойств. Используйте там, где действительно нужна динамика.