3

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

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

4

2 回答 2

4

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

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

于 2014-07-23T02:01:27.800 回答
0

似乎他们添加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"));
}

于 2021-03-03T07:44:59.247 回答