<?php
$a = "Hello World I am Neha Singh Chouhan";
$length = 0;
do {
$length++;
}
while ($a[$length] != null);
echo "Length = ".$length."<br/>";
for ($i = $length - 1; $i >= 0; $i--) {
echo $a[$i];
}
?>
попытался вычислить длину строки без использования встроенной функции strlen ().
выход был
Примечание: смещение неинициализированной строки: 35 в C: \ xampp \ htdocs \ Neha \ ProgramsFromClass \ 10_reverse_string.php в строке 7
Длина = 35
Науок ХГНИС АНЭ МА Я УЗНАЮ ОЛЛЕХ
Что вызывает уведомление и как я могу от него избавиться?
Ваш цикл неверен. Вы увеличиваете свой $length
ДО вы начинаете использовать его, и бежите от конца строки. Поэтому вы тестируете смещения, 1,2,3,...n
, где n
находится за концом строки.
И поскольку вы тестируете несуществующий ключ «массива», независимо от того, как вы на него смотрите, вы всегда получите ошибку, даже после того, как поменяете местами типы циклов.
делать / пока НЕ цикл, чтобы использовать для этого. Вы хотите равнину while
цикл, и использовать isset()
вместо:
$length = 0;
while(isset($a[$length])) { $length++; }
Других решений пока нет …