我有以下代码/字符串:
$ids="#222#,#333#,#555#";
当我使用以下方法搜索零件时:
if(strpos($ids,"#222#"))
它不会找到它。但是当我在没有哈希的情况下搜索时,它可以使用:
if(strpos($ids,"222"))
我已经尝试过使用strval
搜索参数,但这也不起作用。
strpos
从 0 开始计数,如果没有找到则返回 false。你需要===
像这样检查它是否是假的......
if (strpos($ids, '#222#') === false) // not found
或者!==
,如果您想要相反的测试,请使用...
if (strpos($ids, '#222#') !== false) // found
有关更多信息,请参阅PHP 手册条目
使用 strpos 时,您没有明确测试 FALSE。像这样使用它:
if(strpos($string, '#222#') !== FALSE) {
// found
} else {
// not found
}
说明:您正在这样使用它:
if(strpos($string, '#222#')) {
// found
}
这有什么问题?答案:strpos()
将返回在字符串中找到子字符串的位置。在您的情况下0
,它位于字符串的开头。但是除非您使用 or0
发出明确的检查,否则 PHP 会将其视为错误。===
!==
它按预期工作。strpos()
返回 0,因为您要搜索的字符串位于单词的开头。您需要进行相等搜索:
更新您的if()
声明如下:
if(strpos($ids, '#222') !== false)
{
// string was found!
}
试试这个:
$ids="#222#,#333#,#555#";
if(strpos($ids,"#222#") !== false)
{
echo "found";
}
你应该使用 !==
,因为位置'#222#'
是0th (first)
字符。