比较不同类型时,有没有办法使PHP产生警告?

时间:2019-04-19 03:15:23

标签: php types comparison warnings comparison-operators

我继承了一个大型的代码库,几乎只使用松散的比较:

$foo = 1
$bar = "1"

if ($foo == $bar)
{
    doThing();
}

在某些情况下,这会导致错误。

我知道我可以将所有==操作数都切换到===,但是我担心这可能会导致新的问题,直到将代码推送到生产环境之前,这些问题才被注意到。显然那将是非常糟糕的。

在比较两种不同类型时,是否可以启用一些全局设置以使PHP产生警告?

1 个答案:

答案 0 :(得分:0)

否。

您可能想看看文档中定义的strict typing。不幸的是,但这并不是您想要的。

自PHP引入type declarations以来,您可以确保您的方法保证可以接收所请求的参数类型。您也可以declare the return type,这也可以保证您的方法返回正确的类型。

我假设您使用PHP 5继承了旧版代码库。您唯一的解决方案是升级到PHP 7(最好是7.3)并重构方法。

另一方面,您也可以分叉PHP源代码并自己编写必要的代码,甚至将其建议给其他PHP开发人员。但是,审核您的提案可能需要数年。