如果未设置密钥,$ _GET ['key']会返回什么?

时间:2010-07-01 13:49:26

标签: php arrays get

未设置索引时$ _GET会返回什么? (在PHP手册中找不到关于$ _GET的任何内容。)

我写了这个来检查,如果$ _GET ['id'] isset - 如果不是,请将$ id设置为false:

<?php $id = (isset($_GET['id'])) ? $_GET['id'] : false ?>

6 个答案:

答案 0 :(得分:15)

$ _ GET只是一个普通的数组,因此它的行为与任何其他数组完全相同。

这意味着,当您调用不存在的索引时,它将向变量返回NULL并引发“未定义的索引”通知。

使用$ _GET唯一需要注意的是包含不安全(用户可修改的)数据

答案 1 :(得分:3)

取消设置索引的值为NULL。访问它们将导致发出通知(除非您的错误级别设置为吞下通知)。

答案 2 :(得分:2)

var_dump($_GET['nonexistent']); // outputs NULL

http://php.net/manual/en/function.var-dump.php

答案 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)

$_GETsuperglobal array

因此,它遵循访问数组键的规则:

  

尝试访问哪个数组键   尚未定义的是相同的   访问任何其他未定义的   变量:E_NOTICE级错误   将发出消息,结果   将是NULL