一个比另一个更可读吗?起初,我不喜欢false ===
方法,但正如我越来越常见,我正在热身。我很确定他们会得到相同的结果。
答案 0 :(得分:7)
绝对没有功能差异。
我通常首先放置变量,然后放置常量值。因为这是有道理的(当你大声说出来时,你会说“我测试变量是假的”吗?或者“我测试假等于变量”?)
答案 1 :(得分:6)
我非常喜欢
false === $var
因为有时候你只是在使用平等而不是寻找身份。
在这种情况下你写
false == $var
但有时你并不是游戏中的佼佼者,可能会写
false = $var
会立即发出错误,让我们马上解决。
但是,如果您输入
$var = false
你最终在墙上撞了一个小时,试图找出你脚本无法正常工作的原因。
答案 2 :(得分:3)
比我更好的软件工程师教我这个。长话短说,将常数放在第一位是最好的做法,尽管起初可能看起来很奇怪。我说这是一种最佳实践,因为它可以产生最可预测的结果:
$var = null;
if (false === $var) { // NullPointerException is not thrown; only evaluates to "true" if the value "false" was assigned to $var
...
}
if ($var === false { // NullPointerException will be thrown
...
}
if (false = $var) { // Parse Error
...
}
if ($var = false) { // the value false is assigned to $var
...
}