繁体   English   中英

一台计算机上出现“意外的T_PAAMAYIM_NEKUDOTAYIM”,而使用PHP 5则不在另一台计算机上

[英]“unexpected T_PAAMAYIM_NEKUDOTAYIM” on one computer but not another with PHP 5

我的本地计算机运行PHP 5.3.2,而我的服务器运行5.2.5。 我懂了

Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM

$productsIterator = $productModule::load(Phlex_Db_Order::Asc('name'));

我认为发生错误是因为PHP 5.2.5不支持$ stringClassName :: methodName()语法。

有人知道1)解决方法或2)发生这种情况的其他原因吗?

一种解决方法是

 call_user_func(array($productModule, "load"), Phlex_Db_Order::Asc('name'));

或者,根据5.2.3以后的手册:

 call_user_func($productModule."::load", Phlex_Db_Order::Asc('name'));

只有一件事要注意:

call_user_func()的参数未通过引用传递。

出于完整性考虑,您是对的,在5.3.0中添加了对静态方法的“动态”调用。 PHP 5更改日志

添加了对使用$foo::myFunc()的静态成员的动态访问的支持。 (Etienne Kneuss)

暂无
暂无

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

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