当 PHPMD 报告我的一些代码具有高 NPath 复杂性时,我正在使用 PHP Mess Detector 分析我的代码。一个例子是:
function compareDates($date1, $date2){
if($date->year < $date2->year){
return -1;
}
if($date->year > $date2->year){
return 1;
}
if($date->month < $date2->month){
return -1;
}
if($date->month > $date2->month){
return 1;
}
if($date->day < $date2->day){
return -1;
}
if($date->day > $date2->day){
return 1;
}
// etc.. same for hour, minute, second.
return 0;
}
结果将是这个函数具有非常高的 NPath 复杂度。是否有一种通用的编码方式来减少这种控制结构和 NPath 复杂性?
源代码:http ://code.google.com/p/phpraise/source/browse/trunk/phpraise/core/datetime/RaiseDateTime.php#546