Посмотрим правде в глаза, debug_backtrace()
Вывод не очень красивый. Кто-нибудь закодировал обертку?Есть ли дамп для печати Pretty Print?
А что ваш любимый довольно var_dump()
(который может использоваться в коммерческих проектах, так что никаких GPL (хотя LGPL нормально))
Смотрите также: A more pretty/informative Var_dump alternative in PHP?
Шесть лет - и десять тысяч просмотров этого вопроса - позже, и я все еще использую это. Это не очень хорошо выглядит на экране, например, Kint (что отлично).
Это простой текст, который я могу написать себе в автоматических отчетах об ошибках и может отображаться в консоли разработчика браузера, используя ChromePhp.
/**
* @brief Returns an HTML formatted string showing details of the backtrace
*
* Example:
*
* F:\Dropbox\programs\Xampp\htdocs\api\q.php:48 e(373, 'beer', 'curry')
* F:\Dropbox\programs\Xampp\htdocs\api\q.php:53 d(26366, 28255, 8364)
* F:\Dropbox\programs\Xampp\htdocs\api\q.php:58 c()
* F:\Dropbox\programs\Xampp\htdocs\api\q.php:63 b(1283, 15488, 29369)
* F:\Dropbox\programs\Xampp\htdocs\api\q.php:72 a(788, 6077, 25010)
*/
function FormatBacktrace()
{
$result = '<h4>Backtrace</h4>';
foreach (debug_backtrace() as $trace)
{
if ($trace['function'] ==__FUNCTION__)
continue;
$parameters = '';
foreach ($trace['args'] as $parameter)
$parameters .= $parameter . ', ';
if (substr($parameters, -2) == ', ')
$parameters = substr($parameters, 0, -2);
if (array_key_exists('class', $trace))
$result .= sprintf("%s:%s %s::%s(%s)<br>",
$trace['file'],
$trace['line'],
$trace['class'],
$trace['function'],
$parameters);
else
$result .= sprintf("%s:%s %s(%s)<br>",
$trace['file'],
$trace['line'],
$trace['function'],
$parameters);
}
return $result;
}
Пожалуйста, не редактируйте ответы, такие как ваше собственное решение, в поле «вопрос»; мы предпочитаем строго разделять две части страницы. Вместо этого вы [рекомендуется отвечать на свой вопрос] (http://stackoverflow.com/help/self-answer), если у вас есть информация, выходящая за пределы перечисленных в настоящее время ответов. – IMSoP 2017-02-22 17:47:45