变量 order/side 与关系运算符有什么区别?

What difference does variable order/side make with relational operators?

比较:

if (donald_duck != null)
if (roast_potatoes > 9000)
if (love === 'explosions')

if (null != donald_duck)
if (9000 <= roast_potatoes)
if ('explosions' === love)

在我编写的语言中,我总是使用第一个顺序,因为它对人类来说是有意义的。例如"Is the parrot dead?" vs "Is dead what the parrot is?" 但是我已经看到 (null == variable) 命令在各种语言和地方使用了几次。

它在操作上有什么不同,是语法上更正确还是更广泛采用的一种方式?

(我知道这对于不同的语言可能有所不同,所以我特别询问 PHP)

行为没有什么不同,但有助于避免比较中的错误。

如果您使用 obj == null 进行比较,您可能会犯错并使用 obj = null 反而会导致您的代码出现问题并产生意外结果。

但是如果您使用 null == obj 进行比较,这种风险就会消失,因为 null = obj 不是一个有效的句子(您不能将对象分配给 null)并且您将在编译时收到错误。

希望这对您有所帮助