在 PHP 7.4.6 中报错:Trying to access array offset on value of type bool 的修复
1、在 PHP 7.4.6 中报错:Trying to access array offset on value of type bool,如图1
2、查看代码,打印 $result,其值为 bool(true)。如图2
1
2
3
4
5
6
|
$result = $planService ->reportUpCreate( $model , $planAttendedUserRelations , $materialAssets , $identity ); var_dump( $result ); exit ; if ( $result [ 'status' ] === false) { throw new ServerErrorHttpException( $result [ 'message' ], $result [ 'code' ]); } |
3、尝试访问类型为 bool 的值的数组下标,因此报错。虽然之前在 PHP 7.2.14 中是正常运行的。由此分析得出,PHP 语言本身对于语法的规范性要求得更为严谨了的。参考官方文档:7.4 版本的向后不兼容更改,非数组的数组样式访问,现在,尝试将 null,bool,int,float 或 resource 类型的值用作数组 ( 例如 $null[“key”] ) 会产生一个通知。https://www.php.net/manual/en/migration74.incompatible.php 。如图3
4、编辑代码,条件判断调整为:!$result。正常运行,未再报错
1
2
3
4
|
$result = $planService ->reportUpCreate( $model , $planAttendedUserRelations , $materialAssets , $identity ); if (! $result ) { throw new ServerErrorHttpException( $result [ 'message' ], $result [ 'code' ]); } |
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/174661.html