PHP 0 vs 虚假歧义


PHP 0 vs False ambiguity

我一直在尝试创建一个系统,其中MySQL数据库中的某些标志是用php检查的。要查看字符串中是否有某个字母,我使用函数 strpos() 。如果我正在检查的字母恰好是字符串中的第一个字母,则该函数返回 0。然而,这个结果似乎与 false 的布尔值同义。我用下面的代码测试了这个理论:

if(0 == false){
    echo 'true';
}

低,看,这计算结果为 true 并回显块内的输出。那么,有没有一种合乎逻辑的方法来区分字符在索引 0 处或根本不是字符串的一部分?我想到的一个选项是基本上在标志字符串前面加上一些字符,如下划线。这样,任何有意义的字符都不会位于函数返回值的索引 0 处。不过,这似乎是一种非常肮脏的解决问题的方法。如果您有任何其他想法,我将非常感谢您的帮助。感谢您的阅读。

使用 ===

if(0 === false){
    // will never be true
    echo 'true';
}