我正在运行HHVM 3.2.0,并试图访问get和POST请求参数。问题是,HHVM不支持访问PHP超全局变量($_GET
, $_POST
, $_SERVER
等)。
我知道在PHP中访问请求参数的唯一其他方法是通过filter_input函数,但这真的是最佳实践(如果我只是使用原始过滤器)吗?似乎HHVM应该支持比这更干净的东西。
HHVM绝对支持PHP代码中的超全局变量——它们是PHP的关键部分!你所链接到的文档页面是完全错误的,我已经提交了一个bug来修复它。
在严格模式Hack代码中,不支持超全局变量;这个食谱示例展示了如何通过局部模式访问它们。
似乎他们添加了HHglobal_get()
来获得全局变量。
把所有的东西放在一起
use namespace FacebookTypeSpec;
// get $_GET using global_get
function global_get_get(): darray<arraykey, mixed> {
$spec = TypeSpecdarray(
TypeSpecarraykey(),
TypeSpecmixed(),
);
return $spec->assertType(HHglobal_get("_GET"));
}