Каково различие между теми PHP если выражения?

Что является различием между теми PHP если выражения!?

if ($var !== false)
{
    // Do something!
}


if (false !== $var)
{
    // Do something!
}

Некоторые платформы как Платформа Зенда используют последнюю форму, в то время как традиционное является первым.

Заранее спасибо

7
задан BalusC 12 May 2010 в 23:41
поделиться

6 ответов

Результат выражения тот же самый, однако это хороший способ защитить себя от присваивания вместо сравнения (например, написав if ($ var = false) вместо if ($ var == false) , поскольку вы не можете присвоить значение $ var ключевому слову false )

10
ответ дан 6 December 2019 в 19:34
поделиться

Нет никакой разницы. ! == сравнивает 2 выражения с проверкой типов и возвращает истину, если они не равны. Различие может заключаться в порядке оценки выражений, но в том случае, если вы написали, разницы нет (и хорошая программа не должна полагаться на порядок выполнения таких выражений).

0
ответ дан 6 December 2019 в 19:34
поделиться

Рассмотрим следующий сценарий:

if (strpos($string, $substring)) { /* found it! */ } 

Если $ substring найдена в точном начале $ string , возвращается значение 0. К сожалению, внутри if это оценивается как false , поэтому условное выражение не выполняется.

Правильный способ обработки:

if (false !== strpos($string, $substring)) { /* found it! */ }

Заключение:

false всегда гарантированно ложно. Другие значения могут не гарантировать этого. Например, в PHP 3 empty ('0') был true , но позже он изменился на false .

0
ответ дан 6 December 2019 в 19:34
поделиться

На самом деле это просто предпочтение. Вы можете указать любой вариант: a == b или b == a, но проще ошибиться, если вы сделаете

if ($var == false)

, потому что, если вы случайно наберете его с one = letter, условие всегда будет равно true (потому что $ var будет установлен успешно), но в случае

if (false == $var)

, если вы теперь введете =, вы получите ошибку.

2
ответ дан 6 December 2019 в 19:34
поделиться

На самом деле нет никакой разницы. Операнды просто по разные стороны, но сравнение, тем не менее, то же самое.

0
ответ дан 6 December 2019 в 19:34
поделиться

Два выражения семантически идентичны. Это просто вопрос предпочтения, ставить ли константное выражение первым или последним.

1
ответ дан 6 December 2019 в 19:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: