debug_backtrace

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

debug_backtraceГенерирует стек вызовов функций

Описание

debug_backtrace(int $options = DEBUG_BACKTRACE_PROVIDE_OBJECT, int $limit = 0): array

Функция debug_backtrace() генерирует стек вызовов функций PHP.

Список параметров

options

Этот параметр — битовая маска для следующих настроек:

Опции debug_backtrace()
DEBUG_BACKTRACE_PROVIDE_OBJECT Нужно ли заполнять ключ "object" (в выходом массиве).
DEBUG_BACKTRACE_IGNORE_ARGS Нужно ли исключить ключ "args" (из выходного массива) с сопутствующим исключением всех аргументов функций/методов, чтобы уменьшить расход памяти.

Замечание:

Возможны четыре комбинации:

Опции debug_backtrace()
debug_backtrace() Заполняются оба ключа.
debug_backtrace(DEBUG_BACKTRACE_PROVIDE_OBJECT)
debug_backtrace(1)
debug_backtrace(0) Не включается ключ "object" и заполняется ключ "args".
debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS) Опускается ключ "object" и ключ "args".
debug_backtrace(2)
debug_backtrace(DEBUG_BACKTRACE_PROVIDE_OBJECT|DEBUG_BACKTRACE_IGNORE_ARGS) Заполняется ключ "object" и опускается ключ "args".
debug_backtrace(3)

limit

Этим параметром можно ограничить количество возвращаемых вызовов функций. По умолчанию параметр (limit=0) — будет выведен весь стек вызовов.

Возвращаемые значения

Функция возвращает массив вложенных ассоциативных массивов (array). Описание элементов массива приведено ниже:

Список возможных элементов массивов, возвращаемых функцией debug_backtrace()
Имя Тип Описание
function string Имя текущей функции. Смотрите также __FUNCTION__.
line int Текущий номер строки. Смотрите также __LINE__.
file string Имя текущего файла. Смотрите также __FILE__.
class string Имя текущего класса. Смотрите также __CLASS__
object object Текущий объект.
type string Текущий тип вызова функции. Если это вызов метода объекта, будет возвращено значение "->". Если это вызов статического метода класса, то "::". Если это простой вызов функции, ничего не возвращается.
args array Если (функция debug_backtrace()) вызвана внутри функции, в этих ключах будут перечислены аргументы функций. Если вызов выполнен внутри включаемого файла, будут перечислены имена включённых файлов.

Примеры

Пример #1 Пример использования debug_backtrace()

<?php
// файл /tmp/a.php

function a_test($str)
{
echo
"\nПривет, $str";
var_dump(debug_backtrace());
}

a_test('друг');
?>

<?php
// файл /tmp/b.php
include_once '/tmp/a.php';
?>

Результат аналогичен приведённому ниже, если запустить /tmp/b.php:

Привет, друг
array(2) {
[0]=>
array(4) {
    ["file"] => string(10) "/tmp/a.php"
    ["line"] => int(10)
    ["function"] => string(6) "a_test"
    ["args"]=>
    array(1) {
      [0] => &string(8) "друг"
    }
}
[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() - Выводит стек вызовов функций