Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 什么';这是';false==$var';和'$var==false';?_Php_Coding Style_Boolean Logic_Boolean Expression - Fatal编程技术网

Php 什么';这是';false==$var';和'$var==false';?

Php 什么';这是';false==$var';和'$var==false';?,php,coding-style,boolean-logic,boolean-expression,Php,Coding Style,Boolean Logic,Boolean Expression,一个比另一个可读性好吗?起初,我不喜欢false===方法,但随着我越来越频繁地看到它,我开始对它产生兴趣。我很肯定他们会得到相同的结果 绝对没有功能上的区别 我通常喜欢将变量放在第一位,将常量值放在第二位。因为这是有道理的(当你大声说出来时,你会说“我测试变量是否为false”还是“我测试变量是否等于false”?)绝对没有功能上的区别 我通常喜欢将变量放在第一位,将常量值放在第二位。因为这是有道理的(当你大声说出来时,你会说“我测试变量是否为false”还是“我测试变量是否等于false”?

一个比另一个可读性好吗?起初,我不喜欢
false===
方法,但随着我越来越频繁地看到它,我开始对它产生兴趣。我很肯定他们会得到相同的结果

绝对没有功能上的区别


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

绝对没有功能上的区别

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

我非常喜欢

false === $var
也就是说,有时候你只是在使用平等,而不是寻找身份

在这种情况下,你写

false == $var
但有时你并不在游戏的巅峰,可能会写作

false = $var
这将立即产生错误,让我们立即修复它

但是,如果您键入

$var = false
最后,你用头撞墙一个小时,试图找出你的脚本为什么不能正常工作。

我更喜欢

false === $var
也就是说,有时候你只是在使用平等,而不是寻找身份

在这种情况下,你写

false == $var
但有时你并不在游戏的巅峰,可能会写作

false = $var
这将立即产生错误,让我们立即修复它

但是,如果您键入

$var = false

最后,你用一个小时的时间把头撞在墙上,试图弄明白为什么你的脚本工作不正常。

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

$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
    ...
}

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

$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
    ...
}


我想这就像是说如果
x=y
那么
y=x
第二个任务更容易在不引起错误的情况下错误地键入作业。我知道我错了,它们并不总是返回相同的结果,这打破了
x=y
y=x
的类比。我想这就像是说如果
x=y
那么
y=x
第二个更容易作为赋值输入错误,而不会导致错误。好吧,我知道我错了,它们并不总是返回相同的结果,这打破了x=y和y=x的类比。+1,我喜欢你的“声音越响代码越好”的想法现代IDE会提醒你如果在if语句中使用赋值,那么将常数放在第一位的唯一用例会迅速减少。这取决于你是否是《星球大战》的粉丝:“如果值为false…”+1,我喜欢你对“代码尽可能好”的看法。如果在if语句中使用赋值,现代IDE会提醒你,因此将常量放在第一位的唯一用例会迅速减少。这取决于你是否是《星球大战》的粉丝:“if false是值…”我们正在讨论PHP,那里没有NullPointerException。但是这个概念仍然适用。我们正在讨论PHP,那里没有NullPointerException。但是这个概念仍然适用。使用合适的IDE可以修复这个参数。代码应该独立于IDE访问。使用合适的IDE可以修复这个参数。代码应该独立于IDE访问