方案
我需要检查我的$type_id
变量是否是某组ID之一。
除了可读性之外没有任何理由,我去了
switch($type_id) {
case Type::SOME_TYPE:
case Type::SOME_OTHER_TYPE:
...
//do stuff
其中大部分都会降级为常见案例。
但是这会增加圈复杂度到PHPMD开始抱怨的程度。
所以我想,让我们改用in_array()
。
if (in_array($type_id, [
Type::SOME_TYPE,
TYPE::SOME_OTHER_TYPE,
...
])) {
//do stuff
}
问题
此时PHPMD停止抱怨,但是仍然存在圈复杂度,只是隐藏在in_array()
函数后面?
答案 0 :(得分:3)
是。但PHPMD规则适用于单个方法/函数中的CC。它不会在整个调用图中应用CC。通常,您可以通过将分支提取到自己的方法中来解决任何PHPMD CC警告。