For循环中的PHP错误

时间:2014-12-20 07:31:20

标签: php

代码工作正常,但我得到以下错误:

  

注意:未初始化的字符串偏移量:第8行/Applications/XAMPP/xamppfiles/htdocs/kwame.php中的3

有人可以解释为什么会这样。谢谢。

<?

$string ='Lt4';
$getl = strlen($string);

for($i=0; $i<=$getl; $i++){

echo $string[$i];
}

?>

2 个答案:

答案 0 :(得分:3)

因为字符串没有那么多索引!索引从0开始。只需将<=更改为<,例如:

<?php

    $string = "Lt4";
             //^^^-Index 2
             //||-Index 1
             //|-Index 0

    $getl = strlen($string);  //Length: 3

    for($i = 0; $i < $getl; $i++) {  //i -> 0, 1, 2 
        echo $string[$i];  //L, t, 4            
    }

?>

迭代概述:

                  Variables            Condition                 Output 

              |  $i  |  $getl    |    $i < $getl  = ?     |    $string[$i] 
-----------------------------------------------------------------------------
Start:        |  0   |    3      |     
Iteration  1: |  0   |    3      |     0 < 3      = TRUE  |         L (Index 0)
Iteration  2: |  1   |    3      |     1 < 3      = TRUE  |         t (Index 1)
Iteration  3: |  2   |    3      |     2 < 3      = TRUE  |         4 (Index 2)
Iteration  4: |  3   |    3      |     3 < 3      = FALSE |      [OFFSET]
              |      |           |                        |
End           |  3   |    3      |                        |
              |      |           |                        |

输出:

Lt4

答案 1 :(得分:1)

<?php
$string ='Lt4';
$getl = strlen($string);
for($i=0; $i<$getl; $i++){
echo $string[$i];
}
?>

enter image description here

索引总是从0开始