繁体   English   中英

Php - 名为List的类的静态函数

[英]Php - Static function of class named List

我有一个名为List的类,这个类有一个静态方法。 我打电话的时候:

List::method();

发生以下错误:

syntax error, unexpected '::' (T_PAAMAYIM_NEKUDOTAYIM), expecting '('

php是否认为我想调用本机函数列表()? 我必须重命名课程吗?

是的,不是。 list不是一个函数,而是一个语言结构 因此它是一个“保留字”,这意味着编译期间令牌化器将对它进行不同的处理。

编译器期望跟随list标记,就像在语言结构中一样,因此使用a (因为它报告。相反,你正在向它提供范围操作符,这意味着它会变得混乱。最简单的解决方案是重命名你的类(无论如何它都是过于通用的)或者通过将类List放在您自己的命名空间中,或者通过显式引用全局命名空间来防止命名空间冲突:

\List::method();

这应该从PHP 5.3向上工作 - 它告诉编译器查看全局命名空间,它会在反斜杠后自动期望一个类名。

是的,PHP尝试调用本机函数
T_PAAMAYIM_NEKUDOTAYIM意味着意外的双冒号,所以当你重命名该类时,一切都应该是好的

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM