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 При вызове этой функции внутри другой функции элементы с этим ключом содержат списки аргументов функций. При вызове внутри включаемого файла элемент содержит названия включённых файлов.

Примеры

Пример #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 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() - Выводит обратную трассировку вызовов функций