可悲的是,这是做到这一点的唯一方法。但是有一些处理较大阵列的方法。例如,像这样:
$required = array('myvar', 'foo', 'bar', 'baz');
$missing = array_diff($required, array_keys($_GET));
变量$missing现在包含必需的值列表,但这些值在 $_GET 数组中缺失。您可以使用 $missing 数组向访问者显示消息。
或者你可以使用类似的东西:
$required = array('myvar', 'foo', 'bar', 'baz');
$missing = array_diff($required, array_keys($_GET));
foreach($missing as $m ) {
$_GET[$m] = null;
}
现在,每个必需的元素至少都有一个默认值。现在,您可以使用 if($_GET['myvar'] == 'something'),而不必担心未设置密钥。
更新
清理代码的另一种方法是使用检查值是否设置的函数。
function getValue($key) {
if (!isset($_GET[$key])) {
return false;
}
return $_GET[$key];
}
if (getValue('myvar') == 'something') {
// Do something
}