调试“致命错误:允许的内存大小为 268435456 字节”错误的最佳策略是什么?我得到的这个错误很奇怪,显然有些错误。导致它的功能是
/**
* Flush all output buffers for PHP 5.2.
*
* Make sure all output buffers are flushed before our singletons our destroyed.
*
* @since 2.2.0
*/
function wp_ob_end_flush_all() {
$levels = ob_get_level();
for ($i=0; $i<$levels; $i++)
ob_end_flush();
}
Run Code Online (Sandbox Code Playgroud)
我只是重新调整了我正在处理的一些代码并开始得到它。你的调试策略是什么?
尝试下面的代码,如果您的代码达到指定的字节数,它只会回显并退出。而不是崩溃:
function wp_ob_end_flush_all() {
$levels = ob_get_level();
for ($i=0; $i<$levels; $i++){
ob_end_flush();
if(memory_get_peak_usage() > 268435400) { // 268435456
echo memory_get_peak_usage(). ' reached! now we should stop the script.' ;
break; // or die();
}
}
}
Run Code Online (Sandbox Code Playgroud)
更新
要回答您的问题,调试泄漏的一种方法是使用xdebug另一种方式来使用我在示例中给出的函数或包装您的可疑函数并memory_get_usage比较差异。