编程语言
首页 > 编程语言> > php – hack typechecker无法识别函数内的’global’关键字

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