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

    +163

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    if($user_key !== '') {
       .... 
    } elseif ($user_key == '') {
      .....
    } else {
       exit('error');
    }

    Еще один шедевр

    Запостил: revis0r, 09 Декабря 2010

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

    • Как часто срабатывает exit? :-D
      Ответить
      • Чувак, видимо, думал, что с вероятностью 33.33% :)
        Ответить
      • нежданчик
        http://govnokod.ru/4058#comment43817
        Ответить
      • показать все, что скрытоС учётом дебильной пхпшной вседозвольной системы типов, ответ на этот вопрос уже не столь очевиден.
        Ответить
        • Вообще да, но exit все равно никогда не сработает. Если, например, передать 0, то сработает первое условие :)
          Ответить
        • Что плохого в динамической типизации?
          Плюс там однозначно до exit дело не дойдет, ибо делается строгое неравенство к '', то есть сначала проверяется тип поля, а потом значение, так что в elseif попадет только в одном случае, когда $user_key === '', т. е. только в случае пустой строки. В случай null, 0 попадем в "then"
          Ответить
          • >>Что плохого в динамической типизации?
            ничего. Плохо когда нет статической.
            Вернее это тоже хорошо, когда у Вас программа из ста строк кода.
            Если строк больше, то без статической типизации жизнь превращается в ад. А именно такой и становится жизнь любого пыхапешника, если он пытается программировать а не говнокодить
            Ответить
          • >>Что плохого в динамической типизации?
            Если вы захотите сложить овец с баранами то при динамики они сложутся и ошибку будите искать не один час.
            А при статике у вас компилятор (или IDE) выдаст ошибку типов
            Ответить
            • а еще если Вы решите переименовать метод getName у класса User, то при статической типизации у Вас IDE само переименует все его вызовы

              а без статической типизации надо будет руками менять везде
              Ответить
              • Методы задокументированы, пока проблем с переименовыванием в phpStorm'е не возникало, правда и делать это приходилось пару раз.
                Ответить
                • >>Методы задокументированы
                  т.е. документация (доки) лечит косяки отсутствия статической типизации?
                  ничего не скажешь -- красивое решение)))

                  >>равда и делать это приходилось пару раз.
                  в крупных проектах рефакторинг делается часто. Меняются классы, методы, сигнатуры, методы подымаются выше/ниже по иерархии.. Или в мире пхп делать рефакторинг не принято?)
                  Ответить
                  • вспоминается php manual где говенные особенности язычка стыдливо не упоминают
                    Ответить
                  • > Или в мире пхп делать рефакторинг не принято?)

                    конечно же нет ))) обычно все кидают и переписывают с нуля!
                    именно поэтому каждый пишет свой фреймворк каждый раз, и даже сам пыхоавтор против них!
                    Ответить
        • разве в школе начались каникулы?

          перед тем, как на что-то срать, чтоб не казаться полным мудаком нужно сначала хотя бы минимально разобраться в сути процесса.
          Ответить
    • Клёво! Всё без ошибок! ))) Что ещё web-developer'у для счастья надо?!
      Ответить
    • зато обработаны все случаи жизни! если бы так каждый ретурн-флаг проверять ))
      типа
      $h=fopen($fn);
      if($h) { ... }
      elseif(!$h) { ... }
      else { ... }

      и далее по коду = )
      Ответить

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