2015-04-18 4 views
2

Это мой первый вопрос в stackoverflow.Неопределенное смещение Примечание в базовом PHP-скрипте

Так вот мой код:

<form method="post" action="#"> 
    <input type="text" name="tags"> 
    <input type="submit" value="Submit"> 
</form> 
<?php if ($_POST && isset($_POST['tags'])) { 
     $tags = explode(', ', $_POST['tags']); 
     for ($i=0; $i <= count($tags); $i++) { 
       echo htmlentities("$i : " . $tags[$i]) . "</br>"; 
     } 
    } 
?> 

код работает и печатает все разделить на «» но это дает мне уведомление, и это заставляет меня сходить с ума.

уведомление

Примечание: Undefined смещение: 3 в C: \ XAMPP \ HTDOCS .. \ 01.PrintTags.php на линии 16 3:

Я надеюсь, что кто-то, кто имеет больше опыта, чем я мог бы дать мне несколько советов о том, как исправить это и объяснить мне, почему это происходит. Спасибо заранее.

+1

вместо '$ i <= count ($ tags)' в цикле for, вы должны указать '$ i fijas

+0

@fijas Да, это так! Большое спасибо человеку. – Codearts

ответ

2

Это происходит потому, что вы начинаете свой цикл с 0 и заканчиваете общую длину массива. либо запустите свой цикл от 1 или удалите знак = из вашего цикла. с вашим путем цикл будет работать более чем на 1 шаг, чем значения в массиве. используйте это

<?php if ($_POST && isset($_POST['tags'])) { 
     $tags = explode(', ', $_POST['tags']); 
     for ($i=0; $i < count($tags); $i++) { 
       echo htmlentities("$i : " . $tags[$i]) . "</br>"; 
     } 
    } 
?> 

лучший способ вы можете использовать foreach для этого. Подобно

foreach($tags as $key=>$val) 
{ 
echo $val; 
} 
Смежные вопросы