升級到php7.2遇到的問題
今天將專案php5.6升級到php7.2,出現create_function被廢棄的警告,這裡記錄一下7.2的變化,方便以後查詢
1、當傳遞一個無效引數時,count()函式將丟擲warning警告
2、each函式已被廢棄:
之前版本寫法:
<?php $array = array(); each($array);
在7.2版本中會提示過時,可以使用foreach替代each方法,也可以自己修改each方法替代:
<?php 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; }
3、create_function被廢棄,可以用匿名函式來代替:
之前的版本
<?php $newfunc = create_function('$a,$b', 'return "ln($a) + ln($b) = " . log($a * $b);'); echo "New anonymous function: $newfunc\n"; echo $newfunc(2, M_E) . "\n"; // outputs // New anonymous function: lambda_1 // ln(2) + ln(2.718281828459) = 1.6931471805599
在7.2版本中會有警告提示,可修改為匿名函式來替代:
<?php $newfunc = function ($a,$b){ return "ln($a) + ln($b) = " . log($a * $b); }; echo $newfunc(2, M_E) . "\n";
4、sizeof在使用之前必須確保非空,否則會報錯:
sizeof(): Parameter must be an array or an object that implements Countable
解決辦法如下:
!empty($data) && sizeof ($data) > 0
以上就是升級之後暫時遇到的幾個問題,其它相關修改可詳看鏈家產品技術團隊做的翻譯及整理:3G9vY92yg" target="_blank" rel="nofollow,noindex">PHP7.2 版本指南