我有一个这样的字符串:$str1 = "mod 1 + mode 2 + comp 1 + toto".
我想测试是否mod 1在$str1.我用过,strpos但这个功能没有帮助.
strpos返回以0开头的字符串中出现的位置,否则返回false.仅使用如下所示的布尔转换是一个常见的错误:
$str1 = "mod 1 + mode 2 + comp 1 + toto";
if (strpos($str, "mod 1")) {
// found
}
Run Code Online (Sandbox Code Playgroud)
因为在这种情况下strpos将返回0.但0转换为布尔值为false:
var_dump((bool) 0 === false); // bool(true)
Run Code Online (Sandbox Code Playgroud)
所以你需要使用严格的比较:
$str1 = "mod 1 + mode 2 + comp 1 + toto";
if (strpos($str, "mod 1") !== false) {
// found
}
Run Code Online (Sandbox Code Playgroud)
这也是文档建议的内容:
警告此函数可能返回布尔值FALSE,但也可能返回非布尔值,其值为FALSE,例如0或"".有关更多信息,请阅读有关布尔值的部分.使用
===运算符测试此函数的返回值.
| 归档时间: |
|
| 查看次数: |
108 次 |
| 最近记录: |