我见过很多代码,它们把布尔值放在前面,后面是比较运算符,然后是测试的变量/函数
if (true === something()) {
doStuff();
}
而不是通常的
if (something() === true) {
doStuff();
}
他们之间真的有区别吗?而不是个人偏好?
将值放在第一位进行比较的做法源于==
通常用作比较运算符(而不是今天的===
(,语法高亮显示和linting不是标准。当时我们只是使用简单的文本编辑器来编写PHP。
";yoda风格;语法有助于避免在涉及变量的比较中出现致命的打字错误:
$foo = false;
if ($foo = true) ...
静默地导致true被分配给变量$foo,这可能不是目的。(同样,如果总是真的(
而
$foo = false;
if (true = $foo) ...
导致语法错误,使您免于头疼。