LittleFatNinja
@LittleFatNinja
горе девелопер, любитель лютой садомии

Нормально ли, что в методе определены функции?

увидел такую структуру
даже не знаю, это очень плохо и так никогда не делать? или в некоторых случаях допустимо?
public static function foo($str) {
  //код
  $arr = ['bar1' 'bar2' 'ba3'];

  if ( func_exist($arr['bar1']) .... )  {
     function bar1() {
        //код
     }

     //код

     function bar2() {
        //код
     }

     //код
     function bar3() {
        //код
     }
   }

  preg_raplace_callback( ...., $str, 'bar1');
}
  • Вопрос задан
  • 346 просмотров
Пригласить эксперта
Ответы на вопрос 2
trevoga_su
@trevoga_su
нет, не нормально, это жуткий говнокод

функции some нужно/можно было просто сделать приватными

ощущение, что человек "боялся" внедрять новые классы, для этого он типа инкапсулировал функции в одном методе

короче не пиши так никогда
Ответ написан
In4in
@In4in
°•× JavaScript Developer ^_^ ו°
Если мне не изменяет память, то так делать вообще нельзя - при втором вызове, PHP станет плеваться ошибками про повторное определение существующей функции.

Но, всегда можно использовать замыкания:

public static function() {
  //код

 $funct = function() {
     //код
  }
}
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
ВЕРТЕКС Санкт-Петербург
от 90 000 ₽
Laptop.ru Москва
от 150 000 до 190 000 ₽
Laptop.ru Санкт-Петербург
от 130 000 до 170 000 ₽
31 июл. 2021, в 00:11
3500 руб./за проект
31 июл. 2021, в 00:00
6000 руб./за проект