php5.4报错关闭,php5.4.0的一些小问题

晚上刚刚更新了php5.4.0,环境是Windows7 + Apache2.2 + MySQL5.1 + PHP5.4.0,php.ini没有重新更新,仍然采用之前的版本(php5.2)

如题,有两个小问题:

1,php5.4.0的命名空间空间问题:

出现:

Fatal error: Namespace declaration statement has to be the very first statement in the script in F:\htdocs\rules.php on line 2

这是啥问题啊???怎样声明都没用。。。。直接copy手册的代码也出错。。。。是php5.4自己的错误还是我配置的问题??

2,直接贴代码吧:

$phpinfo = function (){echo 'hello world!';}phpinfo();$phpinfo();

错误代码:Parse error: syntax error, unexpected 'phpinfo' (T_STRING)

我想这不是啥问题,只是想知道它是为啥这样.如果直接重写覆盖会直接在函声明处产生一个致命错误,可是这里却能正常执行,而且直接覆盖掉了php内置方法(虽然不能正常输出),这应该不只是在5.4里面有,相信在其他版本里同样会有,是一个Bug吗??谢谢

另外,能不能给小弟我说说5.4版本的一些特性呢??

很久没敲php了,都有点生疏了,更别说是了解php的新特性了。。。。

再次感谢!

回复讨论(解决方案)

还有一个问题。

PHP Warning: PHP Startup: Invalid library (maybe not a PHP library) 'libmcrypt.dll' in Unknown on line 0

PHP Warning: PHP Startup: Unable to load dynamic library '../PHP/ext\php_iconv.dll' - 中包含无效路径

in Unknown on line 0

这个怎么解决?在UE中调用php.exe调试输出的,但是正常使用没有问题。。。。很郁闷的,DOS为什么会报错。。。。

(注:我自己配置的移动配置,之前有报错,把libmcrypt.dll和php_iconv.dll放到/Windows目录下可用,现在却又报错了,郁闷。。。。)

1.错误提示的很清楚了,估计是你的程序存有BOM头。

第一个应该是bom头的问题

第二个只是定义了$phpinfo是一个匿名函数,和phpinfo()没有半毛钱关系,并没有覆盖掉phpinfo(),后面加上';' 就正常了

新特性支持以下语法://Short array syntax$a=[1,2,3,4,5,6];//Array dereferencingfunction foo(){ return array(1,2,3,4);}echo foo()[1];

还有Buid-in web server和Traits 楼下接着补充

确认问题一:确实是UTF-8的BOM头问题,已解决:

UE保存时采用格式为UTF-8 无BOM,搞定!

延伸问题二:后面引号去除可以正确调用,但是为啥引号不添加却不会报错??

我也碰到了问题一,不过我的是因为首行写了 `#! /bin/env php`

语言的变更很难三言两语讲完的,你最好查文档。

以下是我查的关于php从5.3到5.4的变更

http://www.php.net/manual/zh/migration54.php

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值