基本 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;
}
这是我在 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;
}