PHP 未定义索引

2022-08-30 10:43:00

这听起来真的很愚蠢,但我不明白为什么我会得到这个错误。

我创建了一个选择框,在我的html表单中名为“query_age”:

<form method="get" action="user_list.php">
<select name="query_age">
  <option value="">Doesn't matter</option>
  <option value="between 18 and 30">18 - 30</option>
  <option value="between 31 and 40">31 - 40</option>
  <option value="between 41 and 50">41 - 50</option>
  <option value="between 51 and 60">51 - 60</option>
  <option value="between 61 and 70">61 - 70</option>
  <option value="between 71 and 80">71 - 80</option>
  <option value="between 81 and 90">81 - 90</option>
  <option value="> 90">Older than 90</option>
</select>

在相应的php表单中,我有:

$query_age = $_GET['query_age'];

当我运行页面时,我收到此错误:

注意:未定义的索引:索引中的query_age.php第 19 行

我不明白为什么会发生这种情况,我很想知道如何让它消失。


答案 1

我没有看到php文件,但可能是 -
替换你的php文件:

$query_age = $_GET['query_age'];

跟:

$query_age = (isset($_GET['query_age']) ? $_GET['query_age'] : null);

最有可能的是,在第一次运行脚本时,您没有并且没有像 .?query_age=[something]$_GETquery_age


答案 2

在我看来,在分配成员之前检查成员的存在是相当丑陋的。

Kohana有一个有用的功能,使选择参数变得简单。

你可以像这样制作自己的...

function arrayGet($array, $key, $default = NULL)
{
    return isset($array[$key]) ? $array[$key] : $default;
}

然后做一些类似的事情...

$page = arrayGet($_GET, 'p', 1);

推荐