В чем причина заказа оператора if таким образом? - PullRequest
4 голосов
/ 02 декабря 2010

Почему создаются if операторы типа ...

if (null === $this->foo){...}
if (0 === count($bar)){...}

, а не ...

if ($this->foo === null){...}
if (count($bar) === 0){...}

Я заметил это в коде ряда кодеров ипроекты, которые я уважаю, но я не знаю, почему они делают это так.Я делаю это вторым способом, следуя моим мыслям «Если это значение совпадает с нулем, то ...», тогда как вопрос «Если ноль совпадает с этим значением ...» мне кажется немного менее очевидным.Итак ... почему?

1 Ответ

16 голосов
/ 02 декабря 2010

Он предназначен для того, чтобы вы случайно не ставили if (this-> foo = null) вместо double ==.

Это ошибка, которую PHP поймает для вас автоматически

if (null = $foo) {}

хотя это, вероятно, ошибка (хотя иногда она может быть преднамеренной и полезной)

if ($foo = null) {}

Таким образом, упорядочивая свои условия таким образом, вы защищаете себя от случайного присвоения значения вместо его сравнения.

...