В чем причина такого заказа оператора if?


Зачем формировать if такие утверждения, как...

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

Вместо того, чтобы...

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

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

Author: Lothar, 2010-12-02

1 answers

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

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

if (null = $foo) {}

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

if ($foo = null) {}

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

 16
Author: El Yobo, 2010-12-02 00:36:55