Что в этом маленьком коде не так?

Рейтинг: 1Ответов: 1Опубликовано: 03.11.2014
<?php
$v = 'Hello';
$s=strlen($v);
$r = 0;
while($r<=$s){
echo $v{$r};
$r++;
}
?>

Выдает ошибку:

Hello
Notice: Uninitialized string offset: 5 in C:\Users\Shato\Desktop\USBWebserver v8.6\root\index.php on line 20

Слово то он пишет, а вот в чем суть моей ошибки? Спасибо!

Ответы

▲ 4Принят
<?php
$v = 'Hello';

$s = strlen($v);
$r = 0;

while($r < $s){
  echo $v{$r};
  $r++;
}

?>

Вместо "меньше или равно" должно быть просто "меньше". Почему? Потому что индексы начинаются с нуля, и символа с индексом 5 нету в строке, т.е.:

0 - H
1 - e
2 - l
3 - l
4 - o
5 - [Notice undefined index]