我只想弄明白......
$mystring = "/abc/def/hij";
$find = "/abc";
echo(strpos($mystring, $find) . "<br>");
if (strpos($mystring, $find) >= 0) {
echo("found");
} else {
echo("not found");
}
这会给: 0 结果
$mystring = "/abc/def/hij";
$find = "/fffff";
echo(strpos($mystring, $find) . "<br>");
if (strpos($mystring, $find) >= 0) {
echo("found");
} else {
echo("not found");
}
输出: [空白] 结果
现在,如果我更改比较器并使用“!= False”而不是“&gt; = 0”
$mystring = "/abc/def/hij";
$find = "/fffff";
echo(strpos($mystring, $find) . "<br>");
if (strpos($mystring, $find) **!= false**) {
echo("found");
} else {
echo("not found");
}
这几乎适用于所有情况,除非我在字符串的开头查找子字符串。例如,这将输出“not found”:
$mystring = "/abc/def/hij";
$find = "/abc";
echo(strpos($mystring, $find) . "<br>");
if (strpos($mystring, $find) != false) {
echo("found");
} else {
echo("not found");
}
那我该怎样才能做到这一点?我只是想知道字符串中是否存在子字符串,如果子字符串是开头或整个字符串,它应该给我“true”...
答案 0 :(得分:4)
使用!==
运算符进行测试。这将比较类型和值,而不仅仅是值:
$mystring = "/abc/def/hij";
$find = "/abc";
echo(strpos($mystring, $find) . "<br>");
if (strpos($mystring, $find) !== false) {
echo("found");
} else {
echo("not found");
}
答案 1 :(得分:2)
我发现问题是什么......我需要使用!== false而不是!= ... Aaaah,php。