是否有PHP文件的静态代码分析器?二进制本身可以检查语法错误,但我正在寻找更多的东西,比如未使用的变量赋值,分配到的数组,而不是先被初始化,以及可能的代码样式警告.开源程序将是首选,但如果强烈建议,我们可能会说服公司支付费用.
我有几个较旧的应用程序,当在E_NOTICE错误级别上运行时会抛出大量"xyz未定义"和"未定义的偏移"消息,因为没有使用isset()和consorts 显式检查变量的存在.
我正在考虑通过它们来使它们与E_NOTICE兼容,因为关于缺失变量或偏移的通知可以是救生员,可能会获得一些微小的性能改进,并且它总体上更清洁.
但是,我不喜欢对我的代码造成数百isset() empty()和array_key_exists()s的影响.它变得臃肿,变得不那么可读,没有在价值或意义上获得任何东西.
如何在没有过多变量检查的情况下构建代码,同时还兼容E_NOTICE?
其他具有自动变量声明的语言(如Perl)具有严格模式.
通过激活此严格模式,需要变量声明,并且只要您尝试使用未声明的变量,Perl就会抛出错误.
PHP提供任何类似的功能吗?
在我最近发布的一个问题中,我描述了我如何在本地服务器上开发一个站点,一切正常.然后在实时部署后,由于使用了未定义的变量,我得到了错误.主要是由于以下情况......
if($var!=""){...}
Run Code Online (Sandbox Code Playgroud)
我知道我应该使用PHP严格并根据我在上一个问题上得到的答案修复所有错误.
现在我想知道......为什么?留下这样的代码可能会产生哪些漏洞?我希望能够向其他人证明为什么需要修复错误.