2010-07-01 28 views
6

索引未设置时,$ _GET会返回什么? (找不到PHP手册约$ _GET的任何东西)

我写了这个检查,如果$ _GET [ '身份证'] isset - 如果不是的话,设置的$ id为false:

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

回答

14

$ _GET只是一个普通的数组,所以它的行为与任何其他数组完全相同。

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

你需要知道的与$ _GET是唯一包含不安全(用户可修改)数据

+0

是的,我意识到这一点,所以我使用SQL准备好的语句作为来自get的id去查询。 谢谢! :) – Rihards 2010-07-02 09:37:42

0

如果未设置索引,则在$_GET内的该索引上运行isset()返回false。

3

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

+4

值得一提的是,isset()是一种语言结构而不是函数,这就是为什么在isset()中输入'$ _GET ['nonexistent_key']'不会引起通知被引发的原因。 – Hammerite 2010-07-01 14:07:15

1

有在手册中的一个示例:PHP: $_GET

示例脚本的相关部分是:

if(isset($_GET["a"])) echo "a is set\n"; 

剧本的那部分打印出“被设定为”当a为通过URL参数传递。 http://path/to/script.php?a

0

$_GETsuperglobalarray

这样,它遵循的规则用于存取阵列的键:

试图访问其 尚未定义的阵列密钥是相同的 访问任何其他未定义的 变量:一个E_NOTICE - 级别错误 消息将被发布,并且结果 将为NULL

相关问题