php5.4.0的一些小问题
晚上刚刚更新了php5.4.0,环境是Windows7 + Apache2.2 + MySQL5.1 + PHP5.4.0,php.ini没有重新更新,仍然采用之前的版本(php5.2)
如题,有两个小问题:
1,php5.4.0的命名空间空间问题:
PHP code<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--><?phpnamespace Foo;class test{/*hello php 5.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,直接贴代码吧:
PHP code<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->$phpinfo = function (){ echo 'hello world!'; } phpinfo(); $phpinfo();
错误代码:Parse error: syntax error, unexpected 'phpinfo' (T_STRING)
我想这不是啥问题,只是想知道它是为啥这样.如果直接重写覆盖会直接在函声明处产生一个致命错误,可是这里却能正常执行,而且直接覆盖掉了php内置方法(虽然不能正常输出),这应该不只是在5.4里面有,相信在其他版本里同样会有,是一个Bug吗??谢谢
另外,能不能给小弟我说说5.4版本的一些特性呢??
很久没敲php了,都有点生疏了,更别说是了解php的新特性了。。。。
再次感谢!
------解决方案--------------------1.错误提示的很清楚了,估计是你的程序存有BOM头。2.这是给$phpinfo赋值,所以要在行末加上分号来正确关闭。
3.错误提示给你的路径你看看对不对
------解决方案--------------------第一个应该是bom头的问题
第二个只是定义了$phpinfo是一个匿名函数,和phpinfo()没有半毛钱关系,并没有覆盖掉phpinfo(),后面加上';' 就正常了
新特性支持以下语法:
PHP code//Short array syntax$a=[1,2,3,4,5,6];//Array dereferencingfunction foo(){ return array(1,2,3,4);}echo foo()[1];<div class="clear">
</div>
Stellungnahme:Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn