PHP считает все методы, начинающиеся с символов двух нижних подчеркиваний __
магическими. Не рекомендуется присваивать собственным методам имена, начинающиеся с __
.
Имена функций __construct(), __destruct(), __call(), __callStatic(), __get(), __set(), __isset(), __unset(), __sleep(), __wakeup(), __toString(), __invoke(), __set_state(), __clone() и __debugInfo() являются магическими в PHP. Не стоит называть свои методы этими именами, если вы не хотите использовать их магическую функциональность.
Все магические методы ДОЛЖНЫ объявлены как public.