讓我們面對它,debug_backtrace()
輸出不是很漂亮。有沒有人編碼包裝?有漂亮的打印堆棧轉儲嗎?
,什麼是你最喜歡的漂亮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