尽管它应该找不到字符串

时间:2015-01-25 22:37:09

标签: php strpos

$row['solved']= "12|10|3";
$id=10;
$pos = strpos($row['solved'], $id);
if ($pos !== false){
    echo "String found!";       
    exit;
}
echo "String not found!";

为什么这总是返回"未找到字符串"?

1 个答案:

答案 0 :(得分:4)

根据PHP docs

  

如果needle不是字符串,则将其转换为整数并应用为字符的序数值。

您的$id参数是一个整数,因此用作ordinal value of the character(通常是ASCII值。)在这种情况下,ASCII值10代表{{1换行字符,因此您正在搜索此\n,但未找到此特定$row['solved']值。

要解决此问题,请使用:

$row['solved']