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

    +159

    1. 1
    if($_GET['archive'] and $_GET['archive'] != ''){ $archive = $_GET['archive']; } // stupid fix ?

    cutenews

    Запостил: jQuery, 11 Ноября 2011

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

    • имелось ввиду
      $archive = empty($_GET['archive'])?'':$_GET['archive'];
      ?
      Ответить
      • А почему это? Можно и так:
        if(!empty($_GET['archive'])) $archive = $_GET['archive'];

        Просто дело в том, что в моем случае, если $_GET['archive'] будет пустым, то переменная $archive просто не будет существовать (по-моему, это и хотел написать в коде автор). А в Вашем случае, переменная $archive в любом случае будет существовать, а если $_GET['archive'] будет пустим ($_GET['archive'] == ''), то она тоже будет пустим. Тогда смысл-то какой проверять пуста ли $_GET['archive']?
        Ответить
        • я не люблю неинициализированные переменные
          Ответить
          • +1
            от себя добавлю: не люблю in-line-code-style.

            if (!empty($_GET['archive'])) {
                $archive = $_GET['archive'];
                // завтра захочу тут еще впилить что-нибудь.
            }


            Ну а вообще понятно ведь, что переменная $archive - флаг, - находимся ли мы в архиве. Флаг должен быть boolean.

            $archive = !empty($_GET['archive']);
            Ответить
            • Вот, это уже другое дело!
              Во-первых, почему же ставить лишние фигурные скобки там, где может быть через год (а может быть и никогда) я буду ставить код? А что, так тяжело ставить эти скобки при добавлении?
              Во-вторых, я согласен с Вами. Можно просто написать:
              $archive=false;
              if( isset($_GET['archive']) ) {
                  $archive = $_GET['archive'];
              }

              Я тут не проверяю пустой ли $_GET['archive']. Почему? Посмотрите этот комментарий - http://govnokod.ru/8494#comment119251
              Ответить
          • Да, я понимаю. Но тогда зачем проверить $_GET['archive']? Всё равно, если он пустой, то $archive тоже пустой, а если он содержит что-то, то $archive содержит тоже самое. Тогда зачем проверить пустой ли $_GET['archive']?
            $archive = $_GET['archive'];

            Или может быть надо проверить, существует ли $_GET['archive']?
            $archive='';
            if( isset($_GET['archive']) ) {
                $archive = $_GET['archive'];
            }
            Ответить
        • разрыв мозга просто
          Ответить
    • показать все, что скрытоvanished
      Ответить

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