`
dcj3sjt126com
  • 浏览: 1877557 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

1 14:00 PHP中的“syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM”错误(转载)

php 
阅读更多

原文地址:http://www.kafka0102.com/2010/08/281.html

 

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

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics