在 PHP 中,处理内存耗尽错误需要多方面的方法。虽然使用 ini_set() 增加内存限制似乎是一个快速解决方案,但它并不总是可行或理想的。
一种推荐的方法包括使用 register_shutdown_function() 和 error_get_last()。这允许您在脚本关闭时检查错误,并在没有发生错误时捕获空值。
<code class="php">register_shutdown_function(function(){ $error = error_get_last(); if(null !== $error) { echo 'Caught at shutdown'; } });</code>
在网关脚本中,考虑使用 try/catch 块来捕获致命错误:
<code class="php">try { while(true) { $data .= str_repeat('#', PHP_INT_MAX); } } catch(\Exception $exception) { echo 'Caught in try/catch'; }</code>
但是,在本示例中,由于脚本过早终止,ErrorException 对象并未完全抛出。
最后,通过将 display_errors 设置为 false 来禁用错误显示,并检查 shutdown 函数中的错误数组查明错误原因并做出适当响应。
这些技术提供了一种安全且灵活的方法来处理 PHP 中的内存耗尽错误,而无需过度增加内存限制。
以上是PHP 可以在不超出内存限制的情况下处理内存耗尽错误吗?的详细内容。更多信息请关注PHP中文网其他相关文章!