<?php
function a($depth = 0) {
//return last backtrace call. If backtrace bigger then 3, return third call.
if($depth === 1000) {
if(PHP_VERSION_ID >= 50400) {
return array_slice(array_filter(array_slice(debug_backtrace(~ DEBUG_BACKTRACE_PROVIDE_OBJECT & ~ DEBUG_BACKTRACE_IGNORE_ARGS, 3), 0, 3)), -1, 1);
}
else if(PHP_VERSION_ID >= 50306) {
return array_slice(array_filter(array_slice(debug_backtrace(~ DEBUG_BACKTRACE_PROVIDE_OBJECT), 0, 3)), -1, 1);
}
else return array_slice(array_filter(array_slice(debug_backtrace(~ DEBUG_BACKTRACE_PROVIDE_OBJECT), 0, 3)), -1, 1);
}
return a(++$depth, str_repeat("a", 1000));
}
var_dump(a());
preferences:
38.2 ms | 402 KiB | 5 Q