6

Hack 手册非常清楚地说明了如何对函数参数、函数返回类型和成员变量进行类型注释。但是,我尝试对全局变量或函数局部变量进行类型注释的所有方式都会导致语法错误:

string $foo   = "foo";        // unexpected T_VARIABLE
$foo : string = "foo";        // unexpected ':'
string $foo;   $foo = "foo";  // unexpected T_VARIABLE
$foo : string; $foo = "foo";  // unexpected ':'

这样的注释可能吗?如果可能,那么正确的语法是什么?如果不可能,那么这是设计使然,还是开发人员计划实现的?(肯定会有用。)

4

1 回答 1

7

这是不可能的,这是设计使然。

局部变量的类型被推断出来,而全局变量不会被类型检查(因为它们可以在任何时间从任何地方通过访问来更改$_GLOBALS)。

如果文档的某个特定页面可以使这一点更清楚,请单击其底部的“File A Documentation Bug”链接,以便添加。

于 2014-04-15T19:58:42.270 回答