В объектно-ориентированном программировании (ООП) в PHP статические свойства позволяют хранить данные, относящиеся ко всему классу, а не к его отдельным экземплярам. Они удобны, когда нужно иметь доступ к единому ресурсу без создания объекта. Давайте разберем их на реальных примерах.

Что такое статические свойства?

Статические свойства объявляются с ключевым словом static и принадлежат классу, а не конкретному объекту. Обращение к ним осуществляется через self:: (внутри класса) или ИмяКласса:: (извне класса).

Пример 1: Счетчик пользователей

Предположим, у нас есть сайт, где регистрируются пользователи. Мы хотим отслеживать количество созданных пользователей.

В данном случае свойство $count принадлежит классу User, а не конкретным его экземплярам. Это удобно для глобального подсчета.

Пример 2: Логирование действий

Допустим, у нас есть класс Logger, который ведет лог событий.

Статическое свойство $log сохраняет все сообщения, к ним можно обращаться без создания объекта.

Используйте статические свойства, если:

  • Данные принадлежат всему классу, а не конкретному объекту (например, глобальные счетчики);
  • Нужно хранить кэш или настройки конфигурации;
  • Вы хотите избежать создания лишних экземпляров класса.

Статические свойства делают код удобнее и логичнее в ряде ситуаций. Однако, злоупотреблять ими не стоит — в большинстве случаев лучше использовать обычные свойства объектов, чтобы сохранить гибкость и читаемость кода.