前兩天發現服務器有漏洞,需要升級服務器,服務器使用的是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其他的改動暫未發現。