1

一个比另一个更具可读性吗?起初,我不喜欢这种false ===方法,但随着我越来越多地看到它,我正在热身。我很确定他们会返回相同的结果。

4

3 回答 3

7

绝对没有功能上的区别。

我通常更喜欢将变量放在第一位,然后将常量值放在第二位。因为这是有道理的(当你大声说出来时,你会说“我测试变量是否为假”吗?还是“我测试错误是否等于变量”?)

于 2012-11-04T19:35:23.000 回答
6

我非常喜欢

false === $var

即因为有时你只使用平等而不是寻找身份。

在这种情况下你写

false == $var

但有时你不在游戏的顶端,可能会写

false = $var

这将立即给出错误,让您立即修复它。

但是,如果您键入

$var = false

你最终会用头撞墙一个小时,试图弄清楚为什么你的脚本不能正常工作。

于 2012-11-04T19:39:57.053 回答
2

一位比我优秀得多的软件工程师教过我这一点。长话短说,将常量放在首位是一种最佳做法,尽管一开始可能看起来很奇怪。我说这是一种最佳实践,因为它会产生最可预测的结果:

$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
    ...
}
于 2012-11-04T19:41:21.120 回答