gpt4 book ai didi

php - switch/cases 和 in_array 之间的循环复杂度差异

转载 作者:可可西里 更新时间:2023-10-31 23:15:17 25 4
gpt4 key购买 nike

场景

我需要检查我的 $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() 函数后面吗?

最佳答案

是的。但是 PHPMD 规则适用于单个方法/函数内的 CC。它不会在整个调用图中应用 CC。通常,您可以通过将分支提取到它自己的方法中来解决任何 PHPMD CC 警告。

旁注:考虑 replace the conditional with polymorphism .

关于php - switch/cases 和 in_array 之间的循环复杂度差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46825137/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com