是否有检测不存在的类方法调用的PHP静态分析器?

是否有检测不存在的类方法调用的PHP静态分析器?,php,static-analysis,Php,Static Analysis,下面是一个语法上有效的PHP程序,它有一半的时间可以工作。在任何静态语言中,等效行都是编译错误: <?php class A { function a() { return 1; } } $x = new A(); if(rand(1,100) > 50) { print $x->b(); } else { print $x->a(); } ?> 动态语言的支持者们都很兴奋,因为,嘿,这个程序有50%的时间可以工作,而静态语言上的等效程序将无法编译

下面是一个语法上有效的PHP程序,它有一半的时间可以工作。在任何静态语言中,等效行都是编译错误:

<?php
class A {
 function a() { return 1; }
}

$x = new A();

if(rand(1,100) > 50) {
  print $x->b();
}
else {
  print $x->a();
}

?>
动态语言的支持者们都很兴奋,因为,嘿,这个程序有50%的时间可以工作,而静态语言上的等效程序将无法编译,因此有0%的时间可以工作

那么,关于我的问题。是否有任何PHP静态分析工具可以检测这类特定的问题

我已看过有关的问题:

但是我不想一个接一个地尝试上面提到的所有工具,我想我应该问一个更具体的问题,专注于能够做到这一点的工具。

IDE可以在PHP代码中找到这一点和许多其他错误。这是此IDE的
检查
功能


我只是这个IDE的用户,它不是营销:)

不公平的测试。输出显示它在66.666.7%的时间内有效(精确到小数点后10位),而不是50%。(好吧,糟糕的笑话,我现在就去睡觉……)我不明白有必要这样做。只要为现有的方法编写代码就行了。当您接管一个充满糟糕代码的新代码库时,我可以看到它的用处:-/sigh@dtbarne人类可能会犯错误。@OZ,这就是为什么PHP会为您输出错误。:)因此,这将让您知道某些请求的页面(或代码库)是否包含引用所包含页面中不存在的方法(或函数)的代码?或者你必须一页一页地看吗?@Jared Farrish第一个变体。它是IDE,而不仅仅是编辑器。这个特性也可以在javascript中使用,所以它就像一个编译器,它会警告你吗?若你们刚开始一个新项目,这将如何运作?@Jared Farrish你们看到右上角的红场了吗?这意味着发现了错误。它不像编译器,当您键入或打开代码时,它会立即工作。您还可以通过菜单调用检查您的文件(整个目录)。您可以检查它是如何工作的-EAP版本是免费的。@Jared Farrish,换句话说,您可以每单击一次就检查整个项目,并获得错误的详细列表。看起来你想找到批评的理由。伙计,这不是我的软件-下载,测试。