虽然应该找不到字符串
String not found although it should
$row['solved']= "12|10|3";
$id=10;
$pos = strpos($row['solved'], $id);
if ($pos !== false){
echo "String found!";
exit;
}
echo "String not found!";
为什么总是这样 return "String not found"?
根据 PHP docs:
If needle
is not a string, it is converted to an integer and applied as the ordinal value of a character.
您的 $id
参数是一个整数,因此用作 ordinal value of the character(通常是 ASCII 值。)在这种情况下,ASCII 值 10
代表 \n
换行符,所以你正在搜索 $row['solved']
这个,在这个特定的 $row['solved']
值中将找不到。
要解决此问题,请使用:
$pos = strpos($row['solved'], (string)$id);
$row['solved']= "12|10|3";
$id=10;
$pos = strpos($row['solved'], $id);
if ($pos !== false){
echo "String found!";
exit;
}
echo "String not found!";
为什么总是这样 return "String not found"?
根据 PHP docs:
If
needle
is not a string, it is converted to an integer and applied as the ordinal value of a character.
您的 $id
参数是一个整数,因此用作 ordinal value of the character(通常是 ASCII 值。)在这种情况下,ASCII 值 10
代表 \n
换行符,所以你正在搜索 $row['solved']
这个,在这个特定的 $row['solved']
值中将找不到。
要解决此问题,请使用:
$pos = strpos($row['solved'], (string)$id);