问题,以下代码如何执行回显:

$str = "Hello World";

if (strpos($str, 'He') !== false) {
    echo 'GOOD';
}


但这不是:

$str = "Hello World";

if (strpos($str, 'He') === true) {
    echo 'GOOD';
}


这两个条件是否相等,因为它们都在检查返回的布尔值是否设置为true? !== false是否等于=== true,如果不是,为什么不呢?

我感谢您的澄清。

最佳答案

不,它们不等同:

strpos()返回布尔值FALSE(如果找不到)或整数偏移值(如果在偏移量0处找到,则可以为0,依此类推),但是它从不返回布尔值TRUE。即布尔TRUE!==一个INT

关于php - strpos意外失败,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20892609/

10-12 07:09