gpt4 book ai didi

php - 我可以避免无效日期的 `DateTime::__construct` 警告吗?

转载 作者:行者123 更新时间:2023-12-03 23:03:36 24 4
gpt4 key购买 nike

这是关于 DateTime::__construct 的。根据这个comment :

If time cannot be parsed an exception of type Exception is thrown which can be caught, however an E_WARNING is emitted as well. This might be confusing if you are converting warnings to exceptions in your error or shutdown handler.

我可以避免警告吗?我有这样的代码(我不在乎日期是否格式正确):

try {
$var = new DateTime('some invalid date format');
} catch (Exception $exception) {
$var = null;
}

但它仍然会发送一个 E_WARNING 报告给我的错误捕捉器(我在 Laravel 应用程序中使用 NewRelic)。而且我不想报告这个错误,因为它不是错误,我捕获了它。

如何避免 DateTime::__construct 发出警告?

最佳答案

这可能是可以接受的少数情况之一:

try {
$var = @new DateTime('some invalid date format');
} catch (Exception $e) {
$var = null;
}

但是您可以通过以下方式避免使用 @ 运算符:

try {
$oldErrorReporting = error_reporting();
error_reporting($oldErrorReporting & ~E_WARNING);
$var = new DateTime('some invalid date format');
error_reporting($oldErrorReporting);
} catch (Exception $e) {
$var = null;
}

关于php - 我可以避免无效日期的 `DateTime::__construct` 警告吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45856223/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com