我有这段代码,并已通过验证程序运行-我看不到任何问题。
$verb = array("count","draw","Write");
echo $sentence."<br>";
foreach ($verb as $v)
{
echo "Verb=" . $v;
echo "<br>";
$pos = strpos($sentence, $v);
if ($pos === true) {
echo "<br> Match found<br>";
$check="1";
} else {
echo "<br>Not found!<br>";
$check="0";
}
}
echo $check;
当$sentence="Write"
(或其中包含$verb
项之一的其他任何项)时,它返回为false
... $check
始终等于{ {1}},而我从没得到0
的{{1}}回报。
我想念什么?
答案 0 :(得分:8)
strpos()
将返回false(如果找不到)或字符串的偏移量(如果发现),则来自手册...
返回针相对于干草堆弦的起点的位置(与偏移量无关)。另请注意 该字符串位置从0开始,而不是1。
因此,将$pos
与true
进行比较将永远无效
if ($pos === true) {
您可以将其更改为..
if ($pos !== false) {
答案 1 :(得分:2)
这是因为strpos
不返回true
,而是返回子字符串在主字符串中的位置。因此,您应该这样编写if
条件:
if ($pos !== false)
查看更多详细信息