<?php
if (!defined('PHP_VERSION_ID')) {
$version = explode('.', PHP_VERSION);
define('PHP_VERSION_ID', ($version[0] * 10000 + $version[1] * 100 + $version[2]));
}
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);
}
elseif(PHP_VERSION_ID >= 50306) {
return array_slice(array_filter(array_slice(debug_backtrace(~ DEBUG_BACKTRACE_PROVIDE_OBJECT), 0, 3)), -1, 1);
}
elseif(PHP_VERSION_ID >= 50205) {
return array_slice(array_filter(array_slice(debug_backtrace(FALSE), 0, 3)), -1, 1);
}
else return array_slice(array_filter(array_slice(debug_backtrace(), 0, 3)), -1, 1);
}
return a(++$depth, str_repeat("a", 1000));
}
var_dump(a());
preferences:
36.42 ms | 402 KiB | 5 Q