PHP strpos() 函数 的位置问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP strpos() 函数 的位置问题相关的知识,希望对你有一定的参考价值。
我在网上学习php,下面的文字是从教程上粘贴过来的,我的疑问是最后那段提示,我觉得按照正常的理解,hello是五字母,那world自然就排在第六啊,为啥提示反而说“之所以是 6 而不是 7 的原因是,字符串中第一个字符的位置是 0,而不是 1。”,这句话彻底把我弄糊涂了,谁能帮解释下
strpos() 函数用于在字符串内查找一个字符或一段指定的文本。
如果在字符串中找到匹配,该函数会返回第一个匹配的字符位置。如果未找到匹配,则返回 FALSE。
下面的实例在字符串 "Hello world!" 中查找文本 "world":
实例
<?php
echo strpos("Hello world!","world");
?>
运行实例 »
上面的代码将输出:6
提示:在上面的实例中,字符串 "world" 的位置是 6。之所以是 6 而不是 7 的原因是,字符串中第一个字符的位置是 0,而不是 1。
PHP的strpos函数辨析
由于strpos在找不到内容时返回FALSE,因此,语法:
if(strpos($str,$find)==0){ //...实际是想在找到且位置为0时进入,结果如果找不到也会进入。 }
在找不到时总会进入条件为真的逻辑,因为PHP里FALSE==0为真。
应修改为:
if(strpos($str,$find)===0){ }
类似的不少函数返回值,使用===更安全和准确。
以上是关于PHP strpos() 函数 的位置问题的主要内容,如果未能解决你的问题,请参考以下文章
PHP字符串函数之 strpos stripos strrpos strripos