2017-01-14 2 views
-4

сообщение об ошибке при попытке распечатать следующую позицию в цикле?Неопределенное смещение при попытке получить следующую позицию в php

$coba = "testing"; 
for($h=1;$h<(count($coba));$h++){ 
    echo $coba[$h+1]; 
}     
+0

строка обрабатывается как массив символов, индекс от 0, а не 2 –

+0

Что вы хотите сделать? – C2486

ответ

0

Если это ваш код, вы получите эту ошибку:

$coba = "testing"; 
for($h=1;$h<strlen($coba);$h++){ 
    echo $coba[$h+1]; 
} 

Причина в том, что вы пытаетесь напечатать что-то, что не существует.

0

Вы увеличиваете $ h на число, большее, чем массив. Вот почему вы получаете ошибку смещения.

+0

'$ h' никогда не увеличивается с этим условием. –

0

Оригинальный код неверен здесь ->for($h=1;$h<(**count**($coba));$h++){

Смотрите справочное руководство PHP на разницу в счете() и STRLEN().

отсчет ($ Коба) составляет 1

StrLen ($ Коба) является 7

Если вы используете StrLen, то код будет правильно перебрать строки:

$coba = "testing"; 
for($h=1;$h<strlen($coba);$h++){ 
    echo $coba[$h+1]; 
} 

Теперь по поводу ошибка, о которой вы упомянули, когда я запускаю выше, я получаю:

PHP Notice: Uninitialized string offset: ...

Две проблемы здесь с йо ur оригинальный код. Поскольку я не знаю вашего первоначального намерения, я могу только догадываться о том, что вы пытались сделать с циклом.

Проблема № 1: индексация в строка должна начинаться с 0, а не 1

Проблема № 2: $ Коба [$ ч + 1] будет недействительным индексом в конце массива в час + 1 ,

Вы можете настроить индексирование час + 1, чтобы быть просто ч или изменить цикл в цикле 1 меньше по for($h=0;$h<(strlen($coba)-1);$h++){

Таким образом, окончательный код может выглядеть следующим образом:

$coba = "testing"; 
for($h=0;$h<(strlen($coba)-1);$h++){ 
    echo $coba[$h+1]; 
} 

Какие выходы при пробел:

esting

+0

Возможно, вы захотите предоставить ссылки на 'count()' и 'strlen()', так как вы упомянули «справочник по PHP» –

+0

ну .. это только часть моего кода. Я не показываю полный код. Большое спасибо за комментарий .. я попробую :) –

Смежные вопросы