我使用HHVM写一个系统工具的功能内“全局”的关键字,我不能为我的生活弄清楚为什么这个代码发出一个错误,当我运行hh_client
哈克typechecker不承认
$__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;
行
正在global
范围内声明。这似乎是一个语法错误,就好像global
关键字在HHVM上不受支持,但是我检查了文档,并且它有几个在Hack代码中使用的例子。
我觉得你很有趣如何使用hacklang和HHVM,但你仍然设法产生可怕的代码。如果要继续使用全局变量和不可读的变量名称等糟糕的做法,那么使用允许严格打字的语言有什么意义? – 2014-10-03 10:27:44