的代码变更目前用于开发的yii2是基于php7.1.33的。由于7.1已经停止维护,计划将php版本更新到7.4,将yii2的版本从2.0.15.1升级到最新的2.0.43。本文记录修改步骤对象修改错误提示:PHPCompileErrorCannotuseyii\base\ObjectasObjectbecause'Object'isaspecialclassname错误原因:php7.2不支持使用object作为类名,你需要将所有的\yii\base\Object的方法修改为使用\yii\base\BaseObjectcontroller修改报错信息:Yii2CalltoamemberfunctionvalidateCsrfToken()onstring报错原因:自yii2.0.36以来,yii2有在init函数中添加了一个类变量$request,Initialize。如果重写控制器的init方法,则必须执行parent::init()。Curlybracesmodification错误信息:PHPDeprecatedWarningArrayandstringoffsetaccesssyntaxwithcurlybracesisdeprecated错误原因:使用花括号访问数组和字符串索引的方法在php7.4中已经被废弃。请使用$var[$idx]的语法代替$var{$idx}。示例:PHP7.4不再允许花括号访问数组元素。$arr=array('1','2','3');//定义一个数组:echo$arr[0];//正确echo$arr{0};//7.4之前更正,7.4中错误的数组Non-nullmodification错误提示:Notice:Tryingtoaccessarrayoffsetonvalueoftypenull错误原因:php7.4不支持访问数组中的非数组Tryingtoaccessnull,bool,int,float或resourceinarrays(eg$null["key"])将抛出通知通知。访问可能为空的数组时,首先判断数组不为空$arr=array();//定义一个数组:if($arr[0]){echo$arr[0];}//纠正之前7.4,7.4提示if(!empty($arr)&&$arr[0]){echo$arr[0];}//正确
