为了账号安全,请及时绑定邮箱和手机立即绑定

php小白容易出现的 strpos 逻辑错误

标签:
PHP

  1. 先来看strpos的用法:


    (PHP 4, PHP 5, PHP 7)

    strpos查找字符串首次出现的位置

    mixed strpos    ( string $haystack   , mixed $needle   [, int $offset = 0  ] )

    返回 needle 存在于 haystack 字符串起始的位置(独立于 offset)。同时注意字符串位置是从0开始,而不是从1开始的。

    如果没找到 needle,将返回 FALSE。(请注意这种情况下的返回值)


2. 实例说明(产生问题的错误代码)

    


<?php    $str 'this is phper !';         if(strpos($str't')){        echo 't 存在';    }else{        echo 't 不存在';    }?>

 新手容易犯的就是对于if的真值判断,由于该函数在没有找到对应字符的情况下,返回值为false,所以就会出现这种判断来处理找到和没找到的情况。由这个例子的结果可以看出,字符‘t’其实是存在的,而且也被找到了,并且返回了该字符的位置值,即0,因为0为假值,程序就会执行else中代码,导致程序运行结果与预期结果不一致,从而产生了所谓的逻辑错误。


3. 正确代码(解决方法)


<?php    $str 'this is phper !';         if(false !== strpos($str't')){        echo 't 存在';    }else{        echo 't 不存在';    }?>


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消