2016-04-24 71 views
-2

我一直在试图制作一个系统,其中MySQL数据库中的某些标志用php进行检查。要查看某个字母是否在字符串中,我使用功能strpos()。如果我检查的字母恰好是字符串中的第一个字符,函数返回0.但是,此结果似乎与false的布尔值同义。我用下面的代码测试了这个理论:PHP 0 vs False ambiguity

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

低,看看这个评估为真,并回声块内的输出。那么,有没有一种合乎逻辑的方式来区分索引为0的字符或根本不属于字符串的一部分?发生在我身上的一个选择是基本上将标志字符串与一些像下划线一样的字符加在一起。这样,在函数的返回值的索引0处不会有有意义的字符。这看起来像是一种非常肮脏的修补方法。如果您有任何其他想法,我将非常感谢您的帮助。 感谢您的阅读。

+0

你为什么不增加只是简单的'1'你'strpos'输出! –

+0

该手册是一个很好的资源,它显示了你可以从松散/严格比较中得到的表格:http://php.net/manual/en/types.comparisons.php – JimL

+0

嗯@UmairShahYousafzai:'echo(false + 1 );' – AbraCadaver

回答

1

使用===

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