一台计算机上出现“意外的T_PAAMAYIM_NEKUDOTAYIM”,而使用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'));
只有一件事到note:
the parameters for call_user_func() are not passed by reference.
出于完整性考虑,您是对的,在5.3.0中添加了对静态方法的“动态”调用.从PHP 5 change log:
Added support for dynamic access of static members using
$foo::myFunc()
. (Etienne Kneuss)
标签:php,php-5-2 来源: https://codeday.me/bug/20191013/1911116.html