先来看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免费学习笔记(深入)”;
<?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 不存在'; }?>
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号