1,统一解决
php.ini中的配置 error_reporting = E_ALL | E_STRICT
这是说,显示那些不符合编码规范的警告(coding standards warnings)。
建议取消error的输出,如果出于调试需要,应改为
error_reporting = E_ALL & ~E_NOTICE
2.首页出现报错:Only variables should be passed by referen
找到出错行(includes\cls_template.php 文件的418行)
tag_sel = array_shift(explode(' ',tag));
改成:
tag_bak = explode(' ',tag);
tag_sel = array_shift(tag_bak);
因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值,后台更新缓存后正常。
另一个地方同样修改(includes\lib_main.php"文件的1329行):
//ext = end(explode('.',tmp));
ext_bak = explode('.',tmp);
ext = end(ext_bak);
3.Strict Standards: Non-static method cls_image::gd_version() should not be called statically
找到出错行(includes\lib_base.php"文件的346行)
return cls_image::gd_version();
改成:
p = new cls_image();
returnp->gd_version();
是因为gd_version()方法未声明静态static,所以会出错。
4. Strict standards: mktime(): You should be using the time() function instead
错误行:$auth = mktime();
PHP手册里http://cn2.php.net/manual/en/function.mktime.php有个Note:
As of PHP 5.1, when called with no arguments, mktime() throws an E_STRICT notice: use the time() function instead.
自从PHP5.1起,调用这个函数不传递参数,会出现一个 notice
@mktime()
前面加@屏蔽mktime出错时提示