PHP命名空间奇怪文件夹,以“t”,“s”,“n”结尾

时间:2016-11-01 22:50:24

标签: php namespaces composer-php php-5.6

我遇到了一个棘手的问题,如果命名空间中的一个文件夹以“t”,“s”或“n”结尾,那么在它之后有一个子文件夹然后它就不会解析。

EX:

namespace DDM\Components\Widget\List;

这导致:Parse error: syntax error, unexpected 'List' (T_LIST), expecting identifier (T_STRING) in <...filepath...>

对于以前面提到的其他2个字母结尾的文件夹也是如此。

我在Windows系统上,但文件是从Debian(jessie)框中提供的,运行PHP版本5.6.27-0 + deb8u1到nginx和PHP-FPM

更新

如果我尝试使用\为整个命名空间添加前缀,那么phpstorm不再将其识别为语法错误,但php编译器仍会出现与上述相同的错误。

任何“L”名称子文件夹都有此结果

正如Jay List所指出的那样是PHP保留字,但使用任何“L”文件夹名称会导致不同的错误:

Fatal error: Undefined constant 'DDM\Components\Widget\Lists' 

任何建议都表示赞赏。

1 个答案:

答案 0 :(得分:1)

这是因为List是保留关键字,即使在命名空间中也不允许使用保留关键字。

PHP Reserved Keywords