未定义的偏移量请注意基本的PHP脚本

时间:2015-04-18 09:07:04

标签: php post undefined offset notice

这是我在stackoverflow中的第一个问题。

所以这是我的代码:

    <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>";
        }
    }
?>

代码工作并打印由“,”分割的所有内容,但它给了我一个通知,它让我疯了。

通知

  

注意:未定义的偏移量:C:\ xampp \ htdocs中的3 .. \ 01.PrintTags.php on   第16行3:

我希望有比我更多经验的人可以给我一些如何解决这个问题的技巧并向我解释为什么会这样。 提前谢谢。

1 个答案:

答案 0 :(得分: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;
}