在处理像 dns_get_record 这样在失败时抛出警告的 PHP 函数时,try/catch 块并不是一个有效的解决方案。但是,还有其他方法来处理警告:
您可以使用 set_error_handler() 临时设置自定义错误处理程序来忽略警告。 API 调用后,使用restore_error_handler() 恢复之前的处理程序。
set_error_handler(function() { /* ignore errors */ }); dns_get_record(); restore_error_handler();
通过设置自定义错误处理程序并利用 ErrorException 类,您可以转换 PHP 错误进入例外:
set_error_handler(function($errno, $errstr, $errfile, $errline) { // exclude suppressed errors if (0 === error_reporting()) { return false; } throw new ErrorException($errstr, 0, $errno, $errfile, $errline); }); try { dns_get_record(); } catch (ErrorException $e) { // ... }
虽然可以使用 @ 运算符来抑制警告,但通常不建议这样做,因为它会掩盖潜在的问题。相反,检查 dns_get_record() 的返回值以确定是否发生错误。
请记住,在 PHP 中处理警告时,考虑所选方法的上下文和后果非常重要。
以上是如何在不使用'try/catch”的情况下有效处理来自'dns_get_record()”等 PHP 函数的警告?的详细内容。更多信息请关注PHP中文网其他相关文章!