我正在使用 pdepend 测试我的库,并且某些函数的复杂性非常高。我刚刚意识到它来自三元运算符,但我不知道为什么。
具有如下功能:
function test($a) {
return $a > 10 ? 5:20;
}
pdepend 返回 5 的复杂度(npath)。为什么有 5 条不同的路径?我只看到2个。
具有如下功能:
function test($a) {
if($a > 10)
return 5;
else
return 20;
}
npath 复杂度为 2。这是有道理的。
编辑:好的,我看了另一个问题:PMD - NPath complex very high with ternary operator (?
它是算法的一部分。不过,该函数只有 2 条可能的路径。该算法对我没有意义。节点数不反映路径数,任意加2。