我最近看到一些例子,其中 if 语句的写法如下:
if ( false === $testValue) {
//do something
}
Run Code Online (Sandbox Code Playgroud)
与更一般的相反:
if ($testValue === false) {
//do something
}
Run Code Online (Sandbox Code Playgroud)
显然,这是一个风格问题,与结果无关,但我的问题是有人能说出为什么有人会使用这种风格以及它来自哪里。
我看到的这种风格的代码示例来自非常优秀的程序员,所以我认为它不一定是一种糟糕的风格。
这样,如果您不小心输入了=(赋值)而不是==(比较),编译器会抱怨该常量无法赋值。
比较:
if (false = $testValue) {
// does not compile, cannot assign to constant
}
Run Code Online (Sandbox Code Playgroud)
到:
if ($testValue = false) {
// assigns false to $testValue, never evaluates to true
}
Run Code Online (Sandbox Code Playgroud)
前者无法编译,后者可以编译并且有错误。