使用返回 JSON 响应的脚本时,遇到“允许的内存大小已耗尽”错误可能是一个问题。为了避免增加内存限制,您可能需要通知用户他们的请求超出了内存阈值。
在 PHP 中,您无法直接捕获致命错误,例如内存大小耗尽。但是,您可以使用 register_shutdown_function 注册一个检查 error_get_last() 的回调。
<code class="php">register_shutdown_function(function() { $error = error_get_last(); if ($error) { echo 'An error occurred: ' . $error['message']; } });</code>
为了防止致命错误导致脚本崩溃,您需要处理由有问题的代码生成的输出。您可以使用 @ 运算符(不推荐)或设置 ini_set('display_errors', false)。
<code class="php">ini_set('display_errors', false); error_reporting(-1); set_error_handler(function($code, $string, $file, $line){ throw new ErrorException($string, null, $code, $file, $line); }); register_shutdown_function(function() { $error = error_get_last(); if ($error) { echo 'Memory limit exhausted. Please try reissuing the request with different parameters.'; } });</code>
在内存使用过多的情况下运行此脚本,它将输出适当的错误消息,通知用户进行调整以减少内存消耗。
保持 error_reporting() 高,以确保其他错误仍然可见。对于非致命错误,请考虑使用 set_error_handler() 和 ErrorException 进行错误处理。
以上是如何以最小的中断处理 PHP 中的'允许的内存大小已耗尽”错误的详细内容。更多信息请关注PHP中文网其他相关文章!