关于strpos 函数,你应该注意什么?
2017-07-30 11:31
381 查看
首先让我们介绍一下这个函数:
mixed strpos(string haystack,mixedneedle [,int $offset = 0])
查找 haystack中是否包含needle ,(字符串位置从0开始)如果包含,则返回$needle 第一次出现的位置,否则返回false
其中$needle 如果不是string, 则会被转换成整数并视为字符的顺序值。
offset是设置从haystack 这个字符串的哪个位置开始进行 $needle的查找的,默认是从第0个位置开始。
7.1.0 开始支持负数的 offset!
紧接着,我们来看两段代码
OK , 看到这两段代码,相信聪明的你已经注意到了 !== false ,对的,正如你运行这两段代码后看到的一样,代码1将输出 “qinjianbo 不包含 qin”, 而代码2 才会输出 “qinjianbo 包含 qin”。
为什么会这样呢?仔细再看看strpos 的加粗部分的介绍吧!~对,字符串位置从0开始,而且包含会返回第一次出现的位置。这里放返回的就是0了, 而if(0) 依然为false, 所以代码1 会输出”qinjianbo 不包含 qin”, 而代码2 的判断中加入了 !== false,进行了严格比较 if(0 !== false) 成立,所以输出”qinjianbo 包含 qin”。
怎么样,找到需要注意的地方了吧!~以后使用strpos 可一定要加 !== false 来进行判断哦!~
mixed strpos(string haystack,mixedneedle [,int $offset = 0])
查找 haystack中是否包含needle ,(字符串位置从0开始)如果包含,则返回$needle 第一次出现的位置,否则返回false
其中$needle 如果不是string, 则会被转换成整数并视为字符的顺序值。
offset是设置从haystack 这个字符串的哪个位置开始进行 $needle的查找的,默认是从第0个位置开始。
7.1.0 开始支持负数的 offset!
紧接着,我们来看两段代码
// 代码1 $haystack1 = 'qinjianbo'; $needle1 = 'qin'; if (strpos($haystack1, $needle1)) { echo sprintf('$s 包含 $s', $haystack1, $needle1); } else { echo sprintf('$s 不包含 %s', $haystack1, $needle1); } // 代码2 $haystack2 = 'qinjianbo'; $needle2 = 'qin'; if (strpos($haystack2, $needle2) !== false) { echo sprintf('$s 包含 $s', $haystack1, $needle1); } else { echo sprintf('$s 不包含 %s', $haystack1, $needle1); }
OK , 看到这两段代码,相信聪明的你已经注意到了 !== false ,对的,正如你运行这两段代码后看到的一样,代码1将输出 “qinjianbo 不包含 qin”, 而代码2 才会输出 “qinjianbo 包含 qin”。
为什么会这样呢?仔细再看看strpos 的加粗部分的介绍吧!~对,字符串位置从0开始,而且包含会返回第一次出现的位置。这里放返回的就是0了, 而if(0) 依然为false, 所以代码1 会输出”qinjianbo 不包含 qin”, 而代码2 的判断中加入了 !== false,进行了严格比较 if(0 !== false) 成立,所以输出”qinjianbo 包含 qin”。
怎么样,找到需要注意的地方了吧!~以后使用strpos 可一定要加 !== false 来进行判断哦!~
相关文章推荐
- 32位机和64位机编程时应该注意些什么
- 关于数组名应该注意的
- js当一个变量为函数时 应该注意的一点细节小结
- 淘宝购物应该注意些什么
- 关于做视频教程应该注意一下
- 我们在网站推广运营的时候应该注意什么?
- fgets函数使用时应该注意的问题
- 收藏:偶要用delphi写几个dll来公开发布出去,让其他工具的程序员调用。应该注意些什么事项 关键字:分类 :个人专区密级 :公开
- 关于C51的中断函数要注意的几个问题 -----中断中调用函数参数错误问题
- 关于指针变量作函数参数的几点注意
- 关于从VSS获取最新文件后应该注意的事项 -----运维日志4
- 关于expdp和impdp 使用EXPDP和IMPDP时应该注意的事项
- 关于php的时间相关函数需要注意时区问题
- 关于Android的JNI开发SO库调java接口函数注意事项
- PET-CT是什么?检查前应该注意哪些?
- 关于cin.ignore()函数的一个需要注意的地方
- 企业网站更新时应该注意些什么?
- 关于栈的弹出函数设计是否应该有两个返回值,一个表示数据,一个表示是否栈为空
- 如果你也面试05 C++中虚函数的作用是什么?它应该怎么用呢?
- 关于sqlite数据库在使用过程中应该注意以下几点