Задать вопрос
@vrazbros

Что плохого в статических функциях?

Недавно столкнулся с вопросом, который не совсем понимаю - Что плохого в статических функциях ?
  • Вопрос задан
  • 181 просмотр
Подписаться 1 Простой 2 комментария
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 2
@Yugh
Нельзя изменить значение, но зато они идеальны для инициализации значений, которые будут характеризовать элементы программы.

Ой, вы про функции, я думал переменные (константы)
Ответ написан
@MikUrrey
Статические блоки памяти (переменные, функции, методы, свойства) нужно использовать только тогда, когда вы понимаете, почему они у вас здесь и сейчас должны быть статическими.
Статические методы ругают за то, что они вызываются без инициализации класса и, соответственно, не взаимодействуют с другими его членами, что идет вразрез и с самой идеей ООП, и с практическими подходами вроде SOLID.
Часто статические методы применяются в составе хелперов, т. е. если класс используется как контейнер для методов (а, по сути, обычных функций), сгруппированных по смыслу, где не подразумевается создание объекта. Например,
namespace app\helpers;

class StringHelper
{

   public static function truncate($string)
   {
       //...
   }

   public static function capitalize($string)
   {
       //...
   }
}

Но такой подход тоже ругают :) Хотя бы потому, что с приходом пространств имен в PHP группировать и изолировать таким образом функции уже не нужно.
namespace app\helpers\string;

   function truncate($string)
   {
       //...
   }

   function capitalize($string)
   {
       //...
   }

- теперь вместо
\app\helpers\StringHelper::truncate($string);
используем
\app\helpers\string\truncate($string);
суть не меняется, но мусорный бак с набором "всякой всячины" превратился в аккуратный чемоданчик инструментов)

P. S.: как справедливо заметили коллеги по цеху, автозагрузки функций в PHP до сих пор нет. Поэтому такой подход остается "правильным" только теоретически, а на практике до сих пор используются "хэлперы"
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽