1. PHP / Говнокод #13355

    +156

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    extract($params);
            foreach (array("subject", "title", "content") as $par) {
                if (empty($$par)) {
                    return false;
                }
            }

    Валидация входных параметров. Каждая строка тут прекрасна

    Запостил: quall, 10 Июля 2013

    Комментарии (18) RSS

    • Чем больше $, тем профессиональнее программист в PHP мире, верно?
      Ответить
      • Больше $$$ - богаче код. А еще важно тщательно прятать переменные скоупа через extract/compact.
        Ответить
        • list($x1, $x2, $x3) = array("subject", "title", "content");
          for ($i = 1; $par = 'x' . strval($i), $i <= 3; $i++) {
            if (empty($$$par)) {
              return false;
            }
          }
          Ответить
    • Кэп, в чем говнокод?
      Ответить
      • В первой строке, распаковывающей массив в переменные, чтобы потом по этим переменным пройтись, как по массиву.
        Ответить
        • А вдруг subject это аргумент функции, title - глобальная переменная, и только content лежал в params.
          Ответить
          • вот все вам погромистам надо сломать
            Ответить
          • А вдруг в params вообще не лежит ничего из перечисленного, а автор нас затроллил первой строкой? Ведь если бы всё лежало в params, было бы так:
            extract($params, EXTR_PREFIX_ALL, 'myparams');
                    foreach (array("myparams_subject", "myparams_title", "myparams_content") as $par) {
            ...
            Ответить
        • А extract выплескивает переменные из хеш массива в локальный скоуп? Само по себе использование такого - уже говнокод.
          Ответить
          • Пхп положил гранату на стол, обезьяны возрадовались и заюзали.
            Ответить
            • Ну граната есть и в питоне, просто там ей обычно не пользуется.

              У меня есть охуенный говнокод, там сначала инклудится конфиг, а потом дампится содержимое $_GET в переменные.
              Ответить
              • Но в питоне я так понимаю гранату надо собрать самому? Готовой же нет (ну кроме **args, из которой надо очень сильно постараться, чтобы сделать дыру)?
                Ответить
                • locals().update({'spam':'egg'})
                  Ответить
                  • def a(**kwargs):
                        locals().update(kwargs)

                    Тут и ссылку на модуль переписать можно. В пидоне даже констант нету.
                    Ответить
                • Регулярно на одном питонофоруме возникают вопросы вида "как создать переменные вида var1...varN" от людей, не знающих, что такое массив.
                  Ответить

    Добавить комментарий