Php 如何通过变量访问预定义变量

Php 如何通过变量访问预定义变量,php,post,Php,Post,我希望创建一个函数来检查POST或GET数据。我想这样称呼它: hasData("POST"); 它将返回true或false,这显然取决于预定义变量名是否传递了包含的数据 我想我可以做一些类似的事情: function hasData($t = 'POST'){ $varType = "_" . strtoupper($t); return !empty( ${$varType} ); } 当我这样做时,$\u POST显然是未定义的,但得到的变量如下: ${"_POST"

我希望创建一个函数来检查
POST
GET
数据。我想这样称呼它:

hasData("POST");
它将返回true或false,这显然取决于预定义变量名是否传递了包含的数据

我想我可以做一些类似的事情:

function hasData($t = 'POST'){
    $varType = "_" . strtoupper($t);
    return !empty( ${$varType} );
}
当我这样做时,
$\u POST
显然是未定义的,但得到的变量如下:

${"_POST"}
没问题

我求助于与此相关的文件。我想知道:

  • 首先,为什么不允许我将变量传递到大括号中以获取预定义变量的值
  • 其次,有没有比(如评论中所建议的)首先全局声明变量更优雅的方法呢

似乎$GLOBALS变量还包含$\u GET和$\u POST变量(但无法找到任何引用)

函数hasData($t='POST'){
$varType=“979;”。strtoupper($t);
return!空($GLOBALS[$varType]);
}

有没有不使用$\u请求的理由?我正试图从一开始就考虑这样做的理由。
empty($\u POST)
不是一种更简单的方法来准确地完成您正在做的事情吗?特别是因为选项实际上只是$\u GET和$\u POST,因为$\u REQUEST是这两个选项的组合。@Brian这是我想用自己的类检查这些变量的一部分-该类将具有其他功能,我宁愿将
empty()
放在一个地方。你对
$\u REQUEST
提出了一个很好的观点——我并不认为前面有那么远,我主要是好奇为什么这是不可行的。啊,那么这就更有意义了;)下面@Haig Bedrosian的回答是正确的,应该让你明白。我可能应该在问题中提到——我的错。HaidBed没有真正回答第二部分,因为
$$varType
仍然不起作用。谢谢你的意见。