簡體   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