我正在运行 HHVM 3.2.0 并尝试访问 GET 和 POST 请求参数。问题是,HHVM 不支持访问 PHP 超全局变量($_GET
、、、$_POST
等$_SERVER
)。
我知道在 PHP 中访问请求参数的唯一其他方法是通过filter_input函数,但这真的是最佳实践(如果我只是使用原始过滤器)?似乎 HHVM 应该支持比这更干净的东西。(哈克呢?)
我正在运行 HHVM 3.2.0 并尝试访问 GET 和 POST 请求参数。问题是,HHVM 不支持访问 PHP 超全局变量($_GET
、、、$_POST
等$_SERVER
)。
我知道在 PHP 中访问请求参数的唯一其他方法是通过filter_input函数,但这真的是最佳实践(如果我只是使用原始过滤器)?似乎 HHVM 应该支持比这更干净的东西。(哈克呢?)
HHVM 绝对支持 PHP 代码中的超全局变量——它们是 PHP 的真正关键部分!您链接到的文档页面完全是错误的,我已经提交了一个错误来修复它。
在严格模式的 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"));
}