变量 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
)并且您将在编译时收到错误。
希望这对您有所帮助
比较:
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
)并且您将在编译时收到错误。
希望这对您有所帮助