前两天发现服务器有漏洞,需要升级服务器,服务器使用的是wamp的集成环境,直接把wamp升级到3.1.9的了,php+mysql+apache都升级了。
php是升级到7.2.18了,结果一打开系统,问题就来了,后来网上一查,php到7.2版本后做了以下改动:
1.each()函数被废弃。解决方法,自己写一个相同功能的函数:
function func_new_each($array){
$res = array();
$key = key($array);
if($key !== null){
next($array);
$res[1] = $res['value'] = $array[$key];
$res[0] = $res['key'] = $key;
}else{
$res = false;
}
return $res;
}
2.count()函数更加严格,参数必须为数组或对象,否则会报错。解决方法:
if(empty($arr)){
$arr = array();
}
count($arr);
--------------或者------------
if(is_array($arr)){
count($arr);
}
3.create_function()函数被废弃,解决方法,可使用匿名函数代替:
$newfunc = function ($a,$b){
return "ln($a) + ln($b) = " . log($a * $b);
};
以上是我遇到的问题以及解决方法,php7.2其他的改动暂未发现。