【发布时间】:2023-03-28 17:51:01
【问题描述】:
我只见过开发人员在使用strpos 来检查子字符串是否存在时使用严格比较:
if (strpos($haystack,$needle) !== false) {
}
今天我突然想到一个可以使用is_numericins
if (is_numeric(strpos($haystack,$needle))) {
}
是否有理由使用一个而不是另一个(特别是在这个用例中)?
仔细想想,strpos 的目的是返回子字符串的位置。只有当它不存在时,它才会返回 false。位置是一个数字。因此,is_numeric 非常有资格在语义上被考虑。
【问题讨论】:
-
is_numeric 将在字符串和整数上都返回 true
-
我的想法和这个一样,除了使用
is_int( )而不是is_numeric( )