Avatar ·

如何执行PHP代码静态分析:工具与使用示例

大家好!我写PHP大约一年了,我的项目(基于自研引擎的在线商店)已经扩展到50多个文件。我注意到代码中出现了一些奇怪的错误:有时变量未声明,有时对null调用方法,有时类型不匹配。手动查找这些bug简直是噩梦。 我听说在其他语言(例如TypeScript或Java)中有静态代码分析——即在代码运行之前检查代码的程序。但PHP中是如何工作的?有类似的东西吗?我尝试过启用严格类型(declare(strict_types=1))和error_reporting(E_ALL),但这并不能捕获逻辑错误。 例如,我有这样一段代码: ```php function calculateDiscount($price, $percent) { return $price - ($price * $percent / 100); } $total = calculateDiscount(1000, '10%'); // 拼写错误:传入了字符串 echo $total; // 输出1000,因为字符串被转换为0 ``` 我期望PHP至少会警告我传入了字符串而不是数字。但什么也没发生——