'false === $ var'和'$ var === false'之间有什么区别?

时间:2012-11-04 19:32:44

标签: php coding-style boolean-logic boolean-expression

一个比另一个更可读吗?起初,我不喜欢false ===方法,但正如我越来越常见,我正在热身。我很确定他们会得到相同的结果。

3 个答案:

答案 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
    ...
}