Это мой первый вопрос в стеке потока.
Итак, вот мой код:
<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>";
}
}
?>
Код работает и печатает все, разделенное на «,», но он дает мне Уведомление, и это сводит меня с ума.
уведомление
Примечание: неопределенное смещение: 3 в C: \ xampp \ htdocs .. \ 01.PrintTags.php on
строка 16 3:
Я надеюсь, что кто-то, кто имеет больше опыта, чем я, мог бы дать мне несколько советов о том, как это исправить и объяснить мне, почему это происходит.
Заранее спасибо.
это происходит потому, что вы начинаете свой цикл с 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;
}
Других решений пока нет …