[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: if($secondary) - разумно или нет?
Страницы: 1, 2
Strannik
Добрый день.
Встретил код:

$secondary = $matches[1];
if($secondary) {...}


я привык уже делать проверку
if($secondary != '') или if(!empty($secondary))
, так вот правильно ли делать
if($secondary) {...}
или лучше писать как и раньше?
twin
Технически это допустимо, но рассово неверно. При такой записи в переменной ожидается булев тип, а там чертиче. PHP прощает эти вольности, но лучше привыкать к хорошему.

Вот еще вариант:
if((bool)$secondary){...}


_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
glock18
Это то же самое, что !empty() но без проверки на существование
Игорь_Vasinsky
glock18
запусти

if($secondary) {
echo '$secondary существует';
}
else
echo '$secondary не существует';


_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
glock18
/facepalm
Игорь_Vasinsky
а чё так?

только эти 5 строчек в коде.

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
twin
error_reporting(0)???

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
HErATuB
"if(empty($secondary))" == "if($secondary) "
они аналогичны.
Игорь_Vasinsky
Цитата
error_reporting(0)???

обязательно, я же говорил уже.

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
glock18
Цитата (HErATuB @ 16.08.2013 - 07:30)
"if(empty($secondary))" == "if($secondary) "
они аналогичны.

Неправда.

2Игорь:
попробуй перечитать мое первое сообщение. Оно кажется мне несложным, и совершенно непонятно как понимание моего сообщения могло сподвигнуть тебя сделать такой комментарий
HErATuB
glock18 Проверь)
glock18
Цитата (Игорь_Vasinsky @ 16.08.2013 - 07:34)
Цитата
error_reporting(0)???

обязательно, я же говорил уже.

huh.gif laugh.gif
Valick
Цитата
обязательно, я же говорил уже.

говнокодить как раз не обязательно smile.gif


_____________
Стимулятор ~yoomoney - 41001303250491
HErATuB
Цитата

empty — Проверяет, пуста ли переменная

    "" (пустая строка) - СРАБОТАЕТ
    0 (целое число) - СРАБОТАЕТ
    0.0 (дробное число) - СРАБОТАЕТ
    "0" (строка) - СРАБОТАЕТ
    NULL - СРАБОТАЕТ
    FALSE - СРАБОТАЕ
    array() (пустой массив) - Не помню)
    var $var; (переменная объявлена, но не имеет значения в классе) - СРАБОТАЕТ
glock18
Цитата (HErATuB @ 16.08.2013 - 07:37)
glock18 Проверь)

Да что с вами, в конце концов, здесь. Неужели думаете, что мне нужно код этот выполнять, чтобы результат предсказать?

1. empty($secondary)
ок, здесь наиболее вероятна опечатка - отсутствие отрицания
вернет true если переменная пуста или не определена

2. $secondary
$secondary будет true если переменная не имеет одно из значений упомянутых здесь же: http://php.net/manual/en/function.empty.php

породит ошибку при неопределенной переменной

3. !empty($secondary)
почти то же самое, что 2, но не порождает ошибку.

За использование 2го варианта в ситуации, когда существование переменной под вопросом, я лично оторвал бы программисту руки.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.