我刚刚使用PHPMD(http://phpmd.org/)测量了一大段PHP代码(1153行),它告诉我代码的NPath复杂度为16244818757303303403077832757824。
在我看来,这似乎是一个疯狂的数字,这表明PHPMD可能已经以某种方式崩溃了。人类编写的一段代码甚至有可能具有如此高的NPath复杂性吗?圈复杂度为351。
两个可能重要的细节-
这是与HTML混合在一起的过程代码,PHPMD仅会测量面向对象的代码。为了解决这个问题,我用一个函数将整个文件包装在一个类中-这代表了如何使用它。
该文件由一系列嵌套的switch语句组成,并且在其中包含许多if..else语句-因此它确实非常复杂。
编辑
我想澄清的是,我不是在问PHPMD是否在骗我。我知道代码是一团糟,我只是想知道任何代码是否真的有那么糟糕。答案似乎是肯定的,这很有可能。
WP_Query::get_posts()
的NPath复杂度为1.435