在HHVM上用PHP请求参数


Request parameters in PHP on HHVM

我正在运行HHVM 3.2.0,并试图访问get和POST请求参数。问题是,HHVM不支持访问PHP超全局变量($_GET, $_POST, $_SERVER等)。

我知道在PHP中访问请求参数的唯一其他方法是通过filter_input函数,但这真的是最佳实践(如果我只是使用原始过滤器)吗?似乎HHVM应该支持比这更干净的东西。

HHVM绝对支持PHP代码中的超全局变量——它们是PHP的关键部分!你所链接到的文档页面是完全错误的,我已经提交了一个bug来修复它。

在严格模式Hack代码中,不支持超全局变量;这个食谱示例展示了如何通过局部模式访问它们。

似乎他们添加了HH'global_get()来获得全局变量。

https://docs.hhvm.com/hack/reference/function/HH.global_get/

把所有的东西放在一起

use namespace 'Facebook'TypeSpec;
// get $_GET using global_get
function global_get_get(): darray<arraykey, mixed> {
  $spec = TypeSpec'darray(
    TypeSpec'arraykey(),
    TypeSpec'mixed(),
  );
  return $spec->assertType('HH'global_get("_GET"));
}