【问题标题】:PHP, 'Haystack contains Needle?'PHP,“干草堆包含针?”
【发布时间】:2012-05-07 01:58:01
【问题描述】:

假设这适用于判断子字符串是否在字符串中,是否有更简洁的方法来做到这一点?

if(is_int(strpos($haystack, $needle))){
   ...
}

【问题讨论】:

    标签: php


    【解决方案1】:

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

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

    【讨论】:

    • @bfavaretto 这是一个不必要的额外函数调用,其中包括expensive
    • 这是正确的,strpos在没有找到针时返回FALSE。
    【解决方案2】:

    不是真的。这真的取决于你的偏好,哪一种是表达你正在做的事情的最清晰的方式。一些替代方案:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-29
      • 2013-01-25
      • 2012-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多