ライブラリを 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の複雑さ(?
それはアルゴリズムの一部です..それでも、関数には2つの可能なパスしかありません。アルゴリズムは私には意味がありません。ノードの数はパスの数を反映しておらず、任意に値に 2 を追加します。