基本 PHP 脚本中的未定义偏移量通知

Undefined offset Notice in basic PHP script

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

所以这是我的代码:

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

该代码有效并打印由“,”分隔的所有内容,但它给了我一个通知,这让我抓狂。

通知

Notice: Undefined offset: 3 in C:\xampp\htdocs...PrintTags.php on line 16 3 :

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

发生这种情况是因为您从 0 开始循环并结束 array 的总长度。从 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;
}