Я тестирую свои библиотеки с помощью pdepend, а некоторые функции имеют невероятно высокую сложность. Я просто понял, что это исходит от тройного оператора, но я не уверен, почему.
С такой функцией, как:
function test($a) {
return $a > 10 ? 5:20;
}
pdepend возвращает сложность (npath) 5. Почему 5 разных путей? Я вижу только 2.
С такой функцией, как:
function test($a) {
if($a > 10)
return 5;
else
return 20;
}
Сложность npath равна 2. Что имеет смысл.
Изменить: Хорошо, я посмотрел на другой вопрос: PMD - сложность NPath очень высока с помощью тернарного оператора (?
Это часть алгоритма. Тем не менее, функция имеет только 2 возможных пути. Алгоритм для меня не имеет смысла. Число узлов не отражает количество путей, и оно произвольно добавляет 2 к значению.