PHP5.4相关错误







2013-03-23
Array to string conversion in libraries\Error.class.php

刚升级的PHP5.4,phpMyAdmin就这样提示了,但在我的PHP5.3.X上却没有这样的提示,看了一下代码,大概是$this->getBacktrace()这一行报错,看了一下$this->getBacktrace()的返回值为array,怪不得报错呢。

看来PHP5.4.X要求的比较严。最直接的方法就是去掉.$this->getBacktrace()这一句。问题直接解决。



2013-03-23
Fatal error: Cannot re-assign auto-global variable _POST


错误原因是因为php5.4.X新版本使用超全局变量做函数参数将导致致命错 误,$_POST、$_GET、$_SESSION、$_SERVER、$_FILES等等这些PHP预定义的数组称之为超全局变量,数据基本来自系统环 境配置和用户输入等等,这些变量是不能自定义的。如图:


用超全局变量做方法参数是没有意义的,因为超全局变量在方法中可以随意调用,而不需要传参就可以获取到。
只要删掉参数里那个全局变量就可以了。

说的直白一点就是说:自己声明的变量避免与php系统提供的变量冲突,这样就可以理解了。




2012-04-21
今天下载了PHP5.4-vc9并和已有的apache2.2.21结合跑,结果一上来就:
Warning: ob_start(): function 'ob_gzhander' not found or invalid function name

晕,网上搜索了一下也没有找到相关解决方案,于是又切回去PHP5.3.8,OK,没有问题,又覆盖升级到PHP5.3.15也正常,php.ini基本上对照改的,差不多是一样的,而且PHP5.4的phpinfo中也能看到zlib呀,怎么就报错呢??只能暂时version_compare(phpversion(), '5.4', '<') && ob_start('ob_gzhander');



300*300
 文章首页关于迷茫时代关于我写意人生
版权所有:迷茫时代 All rights reserved   
执行时间:0.00722 秒