Представьте себе класс, полный статических методов, например, изящный контейнер для хранения связанных функций.
Скажем, вы хотите создать класс, полный ваших любимых функций форматирования строк.
Тогда вы можете сказать MyClass::MakeUppercase($string)
, чтобы сделать строку заглавной. Вы можете сказать MyClass::MakeLowercase($string)
, чтобы сделать строку строчной.
Поскольку ваш служебный класс не представляет какой-либо объект и не имеет какого-либо внутреннего состояния для отслеживания, у вас нет оснований для создания экземпляров его объектов. Нет $myvar = new MyClass()
, прежде чем вы сможете использовать функции. Это просто потратило бы впустую память, создавая объекты, которые никогда не имели бы различные внутренние состояния, чтобы отслеживать.