我创建了一个检查给定字符串是否存在于字符串中的通用函数。除非我能解决这个问题,否则这个功能就能正常工作。问题是,如果我同时将find和string传递给3 i.int,那么它将返回false。我认为这应该是真的。我在php官方网站上看到了以下内容:
如果指针不是字符串,则将其转换为整数,并应用于字符的序数值。
有什么解决办法吗。
我的职能如下:
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。
发布于 2018-08-22 11:06:45
你可以自己转换为字符串:
(string)$find您可以随意添加对您有意义的检查,因为盲投不是一个好主意:
$find = true;
var_dump((string)$find);string(1) "1"发布于 2018-08-22 11:09:16
如果我没有弄错,则stripos表示字符串,因此您应该将整数转换为字符串。请注意,您只需要将其转换到else语句中,就好像它属于第一个条件,它已经是一个字符串了。
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, (string)$find) !== false);
}
}https://stackoverflow.com/questions/51965391
复制相似问题