问题是,以下内容如何执行回显:
$str = "Hello World";
if (strpos($str, 'He') !== false) {
echo 'GOOD';
}但这并不是:
$str = "Hello World";
if (strpos($str, 'He') === true) {
echo 'GOOD';
}这两个条件不是等价的吗,因为它们都在检查返回的布尔值是否设置为true?不是吗!==假与===真一样,如果不是,为什么不?
我很感谢你的澄清。
发布于 2014-01-02 21:52:44
不,它们不是等价物:
strpos()返回布尔值(如果没有找到)或整数偏移值(如果在偏移量为0时可以是0,等等),但它从不返回布尔值TRUE。布尔TRUE !== an INT。
发布于 2014-01-02 21:55:50
运算符===不仅比较值,还比较数据类型。如果strpos找到子字符串,它将返回int类型的位置。因为这不是嘘声,所以不符合条件。
https://stackoverflow.com/questions/20892609
复制相似问题