2009-10-20 77 views
3

我试图让strpos搜索字符串变量$string短语“测试”,如果它不包含“测试”另一个变量$change被重新定义为$string2(其中$change之前已定义)“strpos”函数的错误? PHP

if (strpos($string, 'test') == false) { 
    $change = $string2; 
    break; 
}  

但不幸的是它不起作用。

以上是否有错误?

谢谢。

+0

可能重复http://stackoverflow.com/questions/1004897/question-about-strpos-in-php ) – 2012-07-17 03:16:36

回答

6

如果strpos未找到字符串,在PHP中的类型非特定条件中等于0,则返回false。比较使用strpos时,请确保使用===运算符。

if (strpos($string, 'test') === false) { 
    $change = $string2; 
    break; 
} 
+1

+1协议。 – mauris 2009-10-20 01:50:18

3

尝试使用

if (strpos($string, 'test') === false) 

=== instead of == 
3

strpos可以返回“假”,或者可以返回“0”,这可以被误读为假,因此代替使用==比较运算符(意​​思是“等于” )你必须使用===(意思相同)。你也可以考虑三元语句而不是一休:

$change = (strpos($string, 'test') === false) ? $string2 : $change; 
[问题关于PHP strpos(的