“strpos”函数使用错误?PHP

3

我正在尝试使用strpos函数搜索字符串变量$string中的短语“test”,如果它不包含“test”,则重新定义另一个变量$change$string2(其中$change已经被定义)

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

但不幸的是它不起作用。

上面有错误吗?

谢谢。


可能是PHP中strpos的问题的重复。 - user212218
3个回答

6

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

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

3

尝试使用

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

=== instead of ==

3

strpos 可能返回 "false" 或者 "0",这可能被误读为 false。因此,你需要使用 ===(意为完全相同)运算符,而不是使用 ==(意为等于)运算符进行比较。你还可以考虑使用三元语句代替 break 语句:

  $change = (strpos($string, 'test') === false) ? $string2 : $change;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接