未设置索引时$ _GET会返回什么? (在PHP手册中找不到关于$ _GET的任何内容。)
我写了这个来检查,如果$ _GET ['id'] isset - 如果不是,请将$ id设置为false:
<?php $id = (isset($_GET['id'])) ? $_GET['id'] : false ?>
答案 0 :(得分:15)
$ _ GET只是一个普通的数组,因此它的行为与任何其他数组完全相同。
这意味着,当您调用不存在的索引时,它将向变量返回NULL并引发“未定义的索引”通知。
使用$ _GET唯一需要注意的是包含不安全(用户可修改的)数据
答案 1 :(得分:3)
取消设置索引的值为NULL。访问它们将导致发出通知(除非您的错误级别设置为吞下通知)。
答案 2 :(得分:2)
var_dump($_GET['nonexistent']); // outputs NULL
答案 3 :(得分:1)
手册中有一个例子:PHP: $_GET。
示例脚本的相关部分是:
if(isset($_GET["a"])) echo "a is set\n";
当a
作为参数通过URL传递时,脚本的那一部分打印出“a is set”。 http://path/to/script.php?a
答案 4 :(得分:0)
如果未设置索引,则在isset()
内对该索引运行$_GET
将返回false。
答案 5 :(得分:0)
因此,它遵循访问数组键的规则:
尝试访问哪个数组键 尚未定义的是相同的 访问任何其他未定义的 变量:
E_NOTICE
级错误 将发出消息,结果 将是NULL
。