PHP中的“syntax error, unexpected T_PAAMAYIM_NEKUD...

2012/12/19 17:45
阅读数 298

因为需要,今天晚些在本机使用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后,程序正常了。好吧,与时俱进很重要。

展开阅读全文
加载中
点击加入讨论🔥(2) 发布并加入讨论🔥
打赏
2 评论
0 收藏
0
分享
返回顶部
顶部