由於須要,今天晚些在本機使用PHP作些測試,PHP腳本依賴了一堆我也不清楚作什麼用的庫。結果一跑起來,就報出相似下面的錯誤:「Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM in /home/kafka/test/test.php on line 8」。查找代碼,發現報錯的代碼相似:「$class_name::func1();」,也就是使用一個表示類名的字符串變量來調用它的靜態方法,而且是解析時的語法錯誤(我第一眼看到::時,腦子裏浮現的是C++裏的做用域符號,好長時間後纔想起PHP裏::也有這種東西,我也是用過self::doSomething()的)。這代碼在測試機和生產機跑着呢,應該不會有問題。就到測試機測試了一下,果真沒問題。對比PHP的版本,測試機的是最新的5.3.3,而個人是5.2.13。緣由估計就是版本或者配置方面的不一樣形成了。因而google之,我勒個去,結果一堆頁面都是在熱火朝天的討論PAAMAYIM_NEKUDOTAYIM這個怪異的詞組什麼意思,看得多了,我也明白了,Paamayim Nekudotayim是希伯來語,表示雙冒號的意思,也就是double-colon,但卻沒看到有人提提這個error如何解決。後來總算在官網 http://www.php.net/manual/en/language.oop5.paamayim-nekudotayim.php 找到答案,原來「$class_name::func1();」這種用法是5.3之後才支持的。我暈!從新安裝了最新的PHP後,程序正常了。好吧,與時俱進很重要。 php