'' 比较两边的值是否相等,会自动转换类型; '=' 则会严格比较类型是否相同,如果类型不相同,直接返回false。 例如:'123' === 123 // => false
'!=' 与 ''相对,'!' 与 '==='相对。
0 != false // => false
0 !== false // => true
那么,这有什么实际用处吗?当然有。举个例子,PHP中的strpos()函数返回integer或者boolean
mixed strpos ( string $haystack , mixed $needle [, int $offset = 0 ] )
函数搜索$needle在$haystack中首次出现的位置,位置从0开始。如果没有这个字符串则返回false。
我们不能这么写 $hasFoo = strpos($foobar, 'foo') != false
要这么写 $hasFoo = strpos($foobar, 'foo') !== false
因为这个函数会返回0或者false,而这两个值有不同的含义。'0'表示'foo'首次出现位置为0,而'false'表示没有找到这个字符串。因此,只能使用第二种形式。