Выводит стек вызовов функций в массив


(PHP 4 >= 4.3.0, PHP 5)

debug_backtraceВыводит стек вызовов функций в массив

Описание

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

debug_backtrace() выводит стек вызовов функций PHP в массив.

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

options

В версии 5.3.6, этот аргумент является битовой маской для следующих настроек:

Настройки debug_backtrace()
DEBUG_BACKTRACE_PROVIDE_OBJECT Требуется или нет заполнять данные "объектов".
DEBUG_BACKTRACE_IGNORE_ARGS Требуется или нет не выводить данные с индексом "args", то есть списки аргументов всех функций/методов, для уменьшения расхода памяти.
До версии 5.3.6 принимаются только значения TRUE или FALSE, которые означают, задана настройка DEBUG_BACKTRACE_PROVIDE_OBJECT или нет соответственно.

limit

В версии 5.4.0, этот аргумент используется для ограничения количества вызовов функций, которые будут выведены. По умолчанию (limit=0) будет выведен весь стек вызовов.

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

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

Список возможных значений элементов массивов, возвращаемых функцией debug_backtrace()
Имя Тип Описание
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() - Выводит стек вызовов функций