- 1
- 2
- 3
- 4
if(strlen(trim($row['article']))!=0)
{
// Some action
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+158
if(strlen(trim($row['article']))!=0)
{
// Some action
}
empty? не, это из будущего.
Суки! Сколько можно это писать!
zoggi 26.01.2012 12:57 # 0
istem 26.01.2012 12:59 # 0
zoggi 26.01.2012 13:07 # −1
alex322 26.01.2012 13:32 # +1
Ну а если в $row['article'] будут пробелы находиться то ваш код с empty не сработает. И вообще empty нужно пользоваться когда толком не знаешь, определена ли переменная. А тут все четко, нужно лишь обрезать строку от лишних боковых пробелов и глянуть, осталось ли что то. Не говнокод, минусую!
Да, еще если $row['article']="0" то empty тоже не сработает!
Zerstoren 26.01.2012 13:47 # −2
>>Ну а если в $row['article'] будут пробелы находиться то ваш код с empty не сработает.
Я ничего не сказал про trim, он здесь нужен и это правильно.
>>И вообще empty нужно пользоваться когда толком не знаешь, определена ли переменная
Путаете с isset
>>Да, еще если $row['article']="0" то empty тоже не сработает!
Представьте себе, так и должно быть! Не сработает, но зачем ему срабатывать? Переменная не пуста, у нее длинна в 1 байт.
Соль empty в том, что если будет найден первый байт, она сразу вернет true. В отличии от strlen, который вернет количество байт в строке.
alex322 26.01.2012 14:11 # 0
Zerstoren 26.01.2012 14:18 # −2
Т.е. Отрицание пустоты, если строка как раз не пуста, то оно выполнит действие.
Во первых, оно быстрее, не значительно, но быстрее.
Во вторых логически правильно
В третьих лаконично.
Вообще, сайт с которого я выдрал этот код - один сплошной артефакт говна.
Только файл index.php весит 110кб. Перемешка HTML, JS, CSS и PHP кода.
alex322 26.01.2012 14:23 # 0
Вы сами пробовали исполнить такой то код?
alex322 26.01.2012 14:26 # 0
zoggi 26.01.2012 15:53 # 0
так что emty в самый раз
alex322 26.01.2012 16:03 # 0
Voenniy 29.01.2012 08:23 # +1
Вместо того, чтобы обсирать других — почитайте мануал.
alex322 26.01.2012 14:20 # +2
>> Представьте себе, так и должно быть! Не сработает, но зачем ему срабатывать? Переменная не пуста, у нее длинна в 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 не везде одинаков!
DMak 27.01.2012 10:54 # +3
Opo6ac 28.01.2012 13:19 # −2
Согласен, приведенный говнокод корявенько выглядит. И что приведенный пример с empty() выглядит как минимум более лаконично и более эффективно (по скорости отработки). Но чего сразу кричать "Говнокооод! Говнокоооод!" Все такие, блин, правильные. Соревнование что-ли - кто круче обхамит чужой код? Уж по мелочам то придираться не стоит, наверное.
alex322 29.01.2012 00:20 # +2