在 PHP 中没有初始化的“GET”值


"GET" value without initialaztion in PHP

我正在升级一个用PHP编写的旧系统。我遇到了一件奇怪的事情。表单参数在"GET"方法中传输,而不是像这样初始化参数:

$id=$_GET["id"];

每个参数都有一行,如下所示:

if (empty($id)) $id = "";

当我添加之前值的回显时

echo $id;
if ....

我得到了$_GET["id"]值。显然它有效,但这合法吗?像局部变量一样使用 GET 参数而不明确定义它?

请参阅 http://www.php.net/manual/en/language.variables.superglobals.php

注意:处理register_globals如果已弃用register_globals 指令设置为 on 然后其中的变量也将产生 在脚本的全局范围内可用。例如 $_POST['foo'] 也将作为$foo存在。

请注意已弃用的。.请从您的代码中删除它。非常糟糕的设计:)