PHPMD报数组操作「Else is never necessary」警告 如何优化代码
解决方案
PHPMD 抛出「Else is never necessary」的核心原因是你的 if/else 分支存在可合并的公共逻辑,else 分支完全可以通过提前兜底默认值的方式消除,不需要显式编写。
PHP 7.4 及以上版本(最优写法)
直接使用 null 合并赋值运算符??=兜底初始值,再统一执行累加,全程无 else 逻辑,代码最简洁:
// 先兜底未定义的键值为0,再统一累加 $myArray[$myKey] ??= 0; $myArray[$myKey] += $myValue;
如果业务场景里初始值不是0,直接替换对应初始值即可,逻辑完全通用。
兼容 PHP 7.4 以下版本的写法
如果运行环境不支持??=语法,可以提前做一次初始化判断,同样不需要 else 分支:
// 提前初始化未定义的键 if (!isset($myArray[$myKey])) { $myArray[$myKey] = 0; } // 统一执行累加 $myArray[$myKey] += $myValue;
这种写法和高阶版本逻辑完全一致,只是把??=的语法糖展开成了显式判断,同样不会触发 PHPMD 警告,可读性也很高。
内容的提问来源于stack exchange,提问作者tolga
相关产品推荐
相关产品推荐

