编码方法,为什么!== false

Web*_*net -1 php

为什么我看到人们在做if (false !== $var) {而不是if (false === true) {

Roc*_*mat 6

这个答案由三部分组成:

  1. (false == $ var)和($ var == false)之间的顺序差异
  2. ==和===之间的区别
  3. 为什么你看到人们(false !== $var)而不是if (false === true)

1.(false == $ var)和($ var == false)之间的顺序差异

因为经常犯的错误是忘记放两个=导致意外归属而不是比较,一些程序员决定总是将等式的不变部分放在左侧.这样,意外分配是不可能的,你不会冒险

if ($var = false)

它为变量赋值false,$var并且总是评估false而不是所需的

if ($var == false)

2. ==和===之间的区别

===!==变量的比较类型以及它的价值,而,==!=比较值,并根据需要进行类型转换.

例:

0 == false // true
1 == true // true

0 === false // false
1 === true // false

0 !== false // true
0 !== true // true

false === false // true
false === true  // false
Run Code Online (Sandbox Code Playgroud)

$var !== FALSE之所以使用,是因为很多内置的PHP函数都会返回FALSE错误,并且会成功返回值.返回的值可能与值相同,TRUE但可能不是同一类型.

3.为什么你看到人们(false !== $var)而不是if (false === true)

你的问题本身让人嗤之以鼻(这就是为什么OrangeDog的评论得到了如此多的支持):如果人们这样做了if (false === true),它就等于if(false)并且永远不会执行封闭的块.它仍然会发生,例如在JavaScript中,部分代码是在服务器端语言(如PHP)中生成的.

  • /我自豪地盯着编辑过的答案,并认为我们应该将其作为当天的StackOverflow主页. (2认同)