PHP,“Haystack包含Needle?”

3
假设这个方法可以正确判断字符串中是否包含子串,那么有没有更简洁的方式来实现呢?
if(is_int(strpos($haystack, $needle))){
   ...
}
2个回答

6

我不会那样做。只需与FALSE进行严格比较即可。

$found = strpos($haystack, $needle) !== FALSE;

1
@bfavaretto 这是一个不必要的额外函数调用,其中包括昂贵的一些东西。 - alex
这是正确的,当没有找到匹配项时,strpos返回FALSE。 - kintsukuroi

3
不完全是这样。它实际上取决于您偏好哪种最清晰地表达了您正在做的事情。一些替代方案:
if( strpos( $h, $n ) !== FALSE ){
    // stuff
}

if( strpos( $h, $n ) > -1 ){
    // stuff
}

最常见的方法可能是使用严格的FALSE比较,因此如果您正在开发一个开源项目或有很多其他人使用您的代码,请考虑选择该选项。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接