正在删除严重性:8192来自PHP 8.1错误日志

q3qa4bjr  于 2022-11-21  发布在  PHP
关注(0)|答案(1)|浏览(138)

最近我升级了我的PHP版本从8.0到8.1,现在它显示吨的错误,主要
Severity:8192 --〉从浮点字符串“1651218180.598425”到整型的隐式转换会丢失精度
我已经关闭了E_DEPRECATED的error_reporting,但现在,我还想关闭错误日志(不记录与严重性相关的错误:8192号)。
我知道正确的方法是实际修复它,但这个项目是9岁,所需的努力来修复这将是相当巨大的,所以我希望如果有任何的避风港,可以采取,以防止这被记录,而不是我的最后手段回到PHP8.0。
谢谢

3qpi33ja

3qpi33ja1#

我不得不开始为PHP8.1和PHP9的定时炸弹制作“安全”函数,以确保任何数值比较总是使用浮点数完成。

function safe_number($strNumber){

/* 
    Removes commas from numbers
    2022-10-06: Null safe, returns 0 on empty string instead of returning a non numeric value

    Not locale sensitive
*/

return floatval(str_replace(",","",($strNumber ?: 0)));


}

$varSomething=safe_number(1234) % safe_number("1234.01234");

不幸的是,在一个大的项目中,重构和回归测试是一个噩梦和花费。我希望PHP核心团队意识到他们在这里制造了一个多么大的炸弹,并把自己拉进来。

相关问题