debug_backtrace - Выводит стек вызовов функций в массив
Вернуться к: Функции обработки ошибок
debug_backtrace
(PHP 4 >= 4.3.0, PHP 5, PHP 7)
debug_backtrace — Выводит стек вызовов функций в массив
Описание
$options = DEBUG_BACKTRACE_PROVIDE_OBJECT
[, int $limit = 0
]] )debug_backtrace() выводит стек вызовов функций PHP в массив.
Список параметров
-
options -
В версии 5.3.6, этот аргумент является битовой маской для следующих настроек:
До версии 5.3.6 принимаются только значенияНастройки debug_backtrace() DEBUG_BACKTRACE_PROVIDE_OBJECT Требуется или нет заполнять данные "объектов". DEBUG_BACKTRACE_IGNORE_ARGS Требуется или нет не выводить данные с индексом "args", то есть списки аргументов всех функций/методов, для уменьшения расхода памяти. TRUEилиFALSE, которые означают, задана настройкаDEBUG_BACKTRACE_PROVIDE_OBJECTили нет соответственно. -
limit -
В версии 5.4.0, этот аргумент используется для ограничения количества вызовов функций, которые будут выведены. По умолчанию (
limit=0) будет выведен весь стек вызовов.
Возвращаемые значения
Возвращает массив вложенных ассоциативных массивов (array). Описание элементов массива приведено ниже:
| Имя | Тип | Описание |
|---|---|---|
| function | string | Имя текущей функции. См. также __FUNCTION__. |
| line | integer | Текущий номер строки. См. также __LINE__. |
| file | string | Имя текущего файла. См. также __FILE__. |
| class | string | Имя текущего класса. См. также __CLASS__ |
| object | object | Текущий объект. |
| type | string | Текущий тип вызова функции. Если это вызов метода объекта, будет выведено "->". Если это вызов статического метода класса, то "::". Если это простой вызов функции, не выводится ничего. |
| args | array | При нахождении внутри функции, будет выведен список аргументов этой функции. Если внутри включаемого файла, будет выведен список включаемых файлов. |
Список изменений
| Версия | Описание |
|---|---|
| 5.4.0 |
Добавлен необязательный аргумент limit.
|
| 5.3.6 |
Аргумент provide_object заменен на
options и добавлена дополнительная настройка
DEBUG_BACKTRACE_IGNORE_ARGS.
|
| 5.2.5 |
Добавлен необязательный аргумент provide_object.
|
| 5.1.1 | Элементом возвращаемого массива теперь может быть текущий объект object. |
Примеры
Пример #1 Пример использования debug_backtrace()
<?php
// filename: /tmp/a.php
function a_test($str)
{
echo "\nHi: $str";
var_dump(debug_backtrace());
}
a_test('friend');
?>
<?php
// filename: /tmp/b.php
include_once '/tmp/a.php';
?>
Результат аналогичен приведенному ниже, если запустить /tmp/b.php:
Hi: friend
array(2) {
[0]=>
array(4) {
["file"] => string(10) "/tmp/a.php"
["line"] => int(10)
["function"] => string(6) "a_test"
["args"]=>
array(1) {
[0] => &string(6) "friend"
}
}
[1]=>
array(4) {
["file"] => string(10) "/tmp/b.php"
["line"] => int(2)
["args"] =>
array(1) {
[0] => string(10) "/tmp/a.php"
}
["function"] => string(12) "include_once"
}
}
Смотрите также
- trigger_error() - Вызывает пользовательскую ошибку/предупреждение/уведомление
- debug_print_backtrace() - Выводит стек вызовов функций
Вернуться к: Функции обработки ошибок