"PHP" / Говнокод #9230 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
if(strlen(trim($row['article']))!=0)
{
 // Some action
}

empty? не, это из будущего.
Суки! Сколько можно это писать!

Запостил: Zerstoren Zerstoren, (Updated )

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

  • ты еще про проверку мыла регуляркои вспоми)))
    Ответить
  • Zerstoren

    Ну а если в $row['article'] будут пробелы находиться то ваш код с empty не сработает. И вообще empty нужно пользоваться когда толком не знаешь, определена ли переменная. А тут все четко, нужно лишь обрезать строку от лишних боковых пробелов и глянуть, осталось ли что то. Не говнокод, минусую!

    Да, еще если $row['article']="0" то empty тоже не сработает!
    Ответить
    • Что за ахинею вы несете?

      >>Ну а если в $row['article'] будут пробелы находиться то ваш код с empty не сработает.
      Я ничего не сказал про trim, он здесь нужен и это правильно.

      >>И вообще empty нужно пользоваться когда толком не знаешь, определена ли переменная
      Путаете с isset

      >>Да, еще если $row['article']="0" то empty тоже не сработает!
      Представьте себе, так и должно быть! Не сработает, но зачем ему срабатывать? Переменная не пуста, у нее длинна в 1 байт.


      Соль empty в том, что если будет найден первый байт, она сразу вернет true. В отличии от strlen, который вернет количество байт в строке.
      Ответить
        • if( !empty(trim($row['article'])) )
          {
           // Some action
          }


          Т.е. Отрицание пустоты, если строка как раз не пуста, то оно выполнит действие.
          Во первых, оно быстрее, не значительно, но быстрее.
          Во вторых логически правильно
          В третьих лаконично.

          Вообще, сайт с которого я выдрал этот код - один сплошной артефакт говна.
          Только файл index.php весит 110кб. Перемешка HTML, JS, CSS и PHP кода.
          Ответить
          • Ох уж насмешили))))
            Вы сами пробовали исполнить такой то код?
            Ответить
          • Вам бы справочник почитать про эту функцию, и что она может принимать в аргументы.
            Ответить
          • вряд ли ему важно отловить 0 0,0 и тд по ману
            так что emty в самый раз
            Ответить
          • Fatal error
            Вместо того, чтобы обсирать других — почитайте мануал.
            Ответить
      • >> >>Да, еще если $row['article']="0" то empty тоже не сработает!
        >> Представьте себе, так и должно быть! Не сработает, но зачем ему срабатывать? Переменная не пуста, у нее длинна в 1 байт.

        $var=' '; // пробел
        print !empty($var)?'is not empty':'is empty'; // выдает is not empty
        print '<br />';

        $var='0'; // (string)ноль
        print !empty($var)?'is not empty':'is empty'; // выдает is empty
        print '<br />';

        $var=0; // (int)ноль
        print !empty($var)?'is not empty':'is empty'; // выдает is empty

        Как видите, все три варианта переменных длинной в 1 байт.. Но результат функции empty не везде одинаков!
        Ответить
  • объясни, автор, как сделать идентичную проверку с помощью empty?
    Ответить
    • Он уже писал [url=http://govnokod.ru/9230#comment128146]коммент[/url]
      Согласен, приведенный говнокод корявенько выглядит. И что приведенный пример с empty() выглядит как минимум более лаконично и более эффективно (по скорости отработки). Но чего сразу кричать "Говнокооод! Говнокоооод!" Все такие, блин, правильные. Соревнование что-ли - кто круче обхамит чужой код? Уж по мелочам то придираться не стоит, наверное.
      Ответить
      • Вы что все здесь не догоняете?!!!, что в функцию empty нельзя передавать результат работы другой функции напрямую! Только переменные, или будет fatal error!
        Ответить

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

Из-за тебя ушел bormand, guest!

    А не использовать ли нам bbcode?


    8