我创建了一个通用函数来检查给定的字符串是否存在于字符串中。除非我遇到这个问题,否则该功能工作正常。问题是如果我将 find 和 string 都传递给 3 即 int 那么它返回 false。我相信它应该返回 true。我在php官方网站上阅读并发现了这一点:
如果 needle 不是字符串,则将其转换为整数并用作字符的序数值。
有没有办法解决这个问题。
我的功能如下:
private static function compareValue($string, $find) {
if (strpos($find, '!') === 0) {
//removing first ! for comparison
$find = substr($find, 1);
//comparison will be like not equals to
return !(stripos($string, $find) !== false);
} else {
return (stripos($string, $find) !== false);
}
}
编辑
如果是这样的调用函数,self::compareValue(3,3)
那么它应该返回true而不是false。