php – hack typechecker无法识别函数内的’global’关键字
作者:互联网
我正在使用HHVM编写一个系统工具,我不能为我的生活找出为什么这个代码在运行hh_client时发出错误
$__al_paths = array();
function requires(string $classPath): void {
global $__al_paths;
$className = basename($classPath);
if (!isset($__al_paths[$className])) {
$__al_paths[$className] = AL_CLASSES_FOLDER.'/'.$classPath.'.'.AL_CLASS_EXTENSION;
}
}
当我运行hh_client时,会发出以下命令
/usr/lib/mango/tools/autoloader.hh:9:9,19: Expected
它指向的线是说的线
global $__al_paths;
这是在全球范围内宣布的.这似乎是一个语法错误,就好像HHVM上不支持global关键字一样,但是我检查了文档并且它有一些在Hack代码中使用它的例子.
解决方法:
首先,当您编写PHP代码(包括全局代码)时,HHVM本身支持PHP语言的所有内容.这种限制是由于您使用了Hack语言 – 全局是我们从语言中删除的内容之一.如果你真的需要全局变量,你可以只在部分模式下使用$GLOBALS,但是strict mode完全不允许它们. (如果你看到我们的文档使用全局,那就错了,请使用页面上的按钮来提交错误!)
标签:php,hhvm,hacklang 来源: https://codeday.me/bug/20190609/1207254.html