PHP代码中的while循环执行无限次

时间:2018-12-31 13:50:58

标签: php while-loop strpos

<?php
$string="I am Azizul hakim.I am a student.I am feeling good today";
$find="am";
$i=0;
$find_length=strlen($find);
while($i<strlen($string))
{
    $pos=strpos($string,$find,$i);
    echo $pos;
    $i=$pos+$find_length;
}
?>

php代码执行无限次,尽管限制是通过指定字符串的字符串长度来限制的,为什么它执行无限次呢?

2 个答案:

答案 0 :(得分:0)

strpos返回false,当剩余的$string不包含$ find且循环重新开始时,返回值为0。

答案 1 :(得分:0)

在这种情况下,我相信与perl兼容的正则表达式(pcre)始终是最佳选择。为什么,因为您将仅使用(1)函数/方法调用,然后使用简单循环来处理结果。使用字符串类型的函数/方法,每次在$ haystack中找到$ needle时,您都需要调用另一个字符串类型的函数/方法来处理$ haystack中$ needle的下一次出现!