我继承了一个大型的代码库,几乎只使用松散的比较:
$foo = 1
$bar = "1"
if ($foo == $bar)
{
doThing();
}
在某些情况下,这会导致错误。
我知道我可以将所有==
操作数都切换到===
,但是我担心这可能会导致新的问题,直到将代码推送到生产环境之前,这些问题才被注意到。显然那将是非常糟糕的。
在比较两种不同类型时,是否可以启用一些全局设置以使PHP产生警告?
答案 0 :(得分:0)
否。
您可能想看看文档中定义的strict typing。不幸的是,但这并不是您想要的。
自PHP引入type declarations以来,您可以确保您的方法保证可以接收所请求的参数类型。您也可以declare the return type,这也可以保证您的方法返回正确的类型。
我假设您使用PHP 5继承了旧版代码库。您唯一的解决方案是升级到PHP 7(最好是7.3)并重构方法。
另一方面,您也可以分叉PHP源代码并自己编写必要的代码,甚至将其建议给其他PHP开发人员。但是,审核您的提案可能需要数年。