В чем разница между 'false === $ var' и '$ var === false'?

Является ли еще более читаемым, чем другой? Сначала я не любил false === подход false === но, как я вижу это все чаще и чаще, я разогреваюсь до него. Я уверен, что они возвращают одинаковые результаты.

Я очень предпочитаю

 false === $var 

А именно потому, что иногда вы используете только равенство и не ищите идентичности.

В этом случае вы пишете

 false == $var 

Но иногда вы не находитесь на вершине своей игры и можете писать

 false = $var 

который даст немедленную ошибку, и давайте исправим его сразу.

Однако, если вы введете

 $var = false 

вы в конце концов избиваете голову против стены в течение часа, пытаясь понять, почему ваш скрипт работает неправильно.

Абсолютно никакой функциональной разницы нет.

Обычно я предпочитаю сначала поместить переменную , а постоянное значение – второе. Потому что это имеет смысл (когда вы говорите это вслух, вы скажете: «Я проверяю, что переменная ложна»? Или «Я проверяю, что ложь равна переменной»?)

Об этом меня научил гораздо лучший инженер-программист, чем я. Короче говоря, размещение константы в первую очередь – лучшая практика, хотя сначала она может показаться странной. Я говорю, что это лучшая практика, потому что это приводит к самым предсказуемым результатам:

 $var = null; if (false === $var) { // NullPointerException is not thrown; only evaluates to "true" if the value "false" was assigned to $var ... } if ($var === false { // NullPointerException will be thrown ... } if (false = $var) { // Parse Error ... } if ($var = false) { // the value false is assigned to $var ... }