我的本地计算机运行PHP 5.3.2,而我的服务器运行5.2.5.我明白了
Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM
Run Code Online (Sandbox Code Playgroud)
同
$productsIterator = $productModule::load(Phlex_Db_Order::Asc('name'));
Run Code Online (Sandbox Code Playgroud)
我假设错误发生是因为PHP 5.2.5不支持$ stringClassName :: methodName()语法.
有没有人知道1)解决方法或2)其他原因发生了什么?
一个解决方法是
call_user_func(array($productModule, "load"), Phlex_Db_Order::Asc('name'));
Run Code Online (Sandbox Code Playgroud)
或者,根据自5.2.3以来的手册:
call_user_func($productModule."::load", Phlex_Db_Order::Asc('name'));
Run Code Online (Sandbox Code Playgroud)
只有一点需要注意:
call_user_func()的参数不通过引用传递.
为了完整起见,你是对的,5.3.0中添加了"动态"调用静态方法.从PHP 5更改日志:
添加了对使用静态成员的动态访问的支持
$foo::myFunc().(艾蒂安·凯纳斯)
| 归档时间: |
|
| 查看次数: |
1896 次 |
| 最近记录: |