可能重复:
如何检查等于?(0 == i)或(i == 0)
为什么人们经常在C#中看到"null!= variable"而不是"variable!= null"?
我一直在看一个奇怪的教程以及一些DirectX代码,并注意到许多有经验的C++程序员用以下方式编写表达式:
(<constant> == <variable>)
Run Code Online (Sandbox Code Playgroud)
而不是我的传统智慧似乎更喜欢:
(<variable> == <constant>)
Run Code Online (Sandbox Code Playgroud)
例如if (NULL == ptr)而不是if (ptr == NULL).我更喜欢第二种选择,如果没有其他原因选择前者,我的理由是变量似乎是表达式的"接收"端.
但我怀疑前者用于避免无意中通过使用=而不是将变量的值赋给变量==.这是对的吗?
阅读Symfony2代码时,我多次遇到这个比较
if (null === $variable ) { ... }
Run Code Online (Sandbox Code Playgroud)
我用
if ($variable === null ){ ... }
因为我觉得它更具可读性.
使用第一种符号背后有智慧吗?