PHP中循环时缺少最后一个字符串字符


Missing last string character when looping in PHP

一个一个地回显字符串中的所有元素似乎很容易。当这段代码显示了字符串中除了最后一个字符以外的所有字符时,我感到很惊讶:

function FirstReverse($str) {
    $arr='';
    $len=strlen($str);
    $i=0;
    while($i<$len+1)
    {
        echo $str[$i];
        echo "<hr />";
        $i++;
    }
}

Try:

function FirstReverse($str){
    for($i=0;$i<strlen($str);$i++){
        echo $str[$i].'<hr/>';
    }
}

原因:

for($i=0;$i<strlen($str);$i++)

$i变量被宣布并且等于0

For循环一直持续到$i<strlen($str)(因为$i0开始,而不是1)。

For函数结束时,$i每次加1。

 echo $str[$i].'<hr/>';

这比使用两个不同的echo命令要短——.连接两个PHP字符串。