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"}
没问题
我求助于与此相关的文件。我想知道:
- 首先,为什么不允许我将变量传递到大括号中以获取预定义变量的值
- 其次,有没有比(如评论中所建议的)首先全局声明变量更优雅的方法呢
函数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
仍然不起作用。谢谢你的意见。