Всем привет! Я часто с тем, что люди не понимают, что такое static, когда его стоит применять, не понимают разницы между статическим свойством и методом. Когда начал копать чуть глубже и искать подробные ответы, оказалось, что и сам не до конца понимаю. Поэтому решил написать подробный разбор, включить некоторые сторонние темы, чтобы вы знали, когда что лучше использовать. Я уже писал про статические методы, но теперь подробно про всю статику. Давайте сначала разберёмся, что такое статические члены (static members) класса, и чем они отличаются от нестатических (далее — экземплярных)...
Источник: Nuances of Programming Сигнатура метода Самый распространенный вариант использования ключевого слова static — статический метод. Несмотря на то, что к статическим методам можно обращаться с помощью объектного оператора (->), рекомендуется использовать оператор разрешения области видимости (::), поскольку альтернатива устарела и, вероятно, будет удалена в будущем. С помощью оператора разрешения области видимости можно вызывать статические методы напрямую в классе, а не в его экземпляре. В результате этого ключевое слово $this становится недоступным в теле статических методов...