1

我的本地计算机运行 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)发生这种情况的其他原因?

4

1 回答 1

9

一种解决方法是

 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(). (艾蒂安·克诺斯)

于 2010-09-09T19:04:42.547 回答