1
0
mirror of https://github.com/php/doc-ru.git synced 2026-03-24 07:42:22 +01:00
Files
archived-doc-ru/reference/errorfunc/functions/debug-backtrace.xml
Mikhail Alferov fff86f014e Update a124543 to En (#1072)
* Update tokens.xml to en

* Update include.xml to en

* Update server.xml to En + infostyle

* Update include.xml Fix Rev ID

* Update debug-backtrace.xml to en

* Update define.xml to en
2025-06-03 14:49:54 +03:00

294 lines
9.8 KiB
XML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: a124543dd3f6b1e5567b07420d23899e582514dc Maintainer: tmn Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="function.debug-backtrace" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>debug_backtrace</refname>
<refpurpose>Генерирует обратную трассировку вызовов функций</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>array</type><methodname>debug_backtrace</methodname>
<methodparam choice="opt"><type>int</type><parameter>options</parameter><initializer><constant>DEBUG_BACKTRACE_PROVIDE_OBJECT</constant></initializer></methodparam>
<methodparam choice="opt"><type>int</type><parameter>limit</parameter><initializer>0</initializer></methodparam>
</methodsynopsis>
<para>
Функция <function>debug_backtrace</function> генерирует обратный стек вызовов PHP-функций.
</para>
</refsect1>
<refsect1 role="parameters"><!-- {{{ -->
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>options</parameter></term>
<listitem>
<para>
Параметр принимает битовую маску из следующих опций:
<table>
<title>Опции функции <function>debug_backtrace</function></title>
<tgroup cols="2">
<tbody>
<row>
<entry>DEBUG_BACKTRACE_PROVIDE_OBJECT</entry>
<entry>
Опция устанавливает бит, который определяет, заполнять ли ключ "object" в выходном массиве.
</entry>
</row>
<row>
<entry>DEBUG_BACKTRACE_IGNORE_ARGS</entry>
<entry>
Опция устанавливает бит, который определяет, исключать ли ключ "args" из выходного массива
и вместе с ним аргументы функций и методов, чтобы уменьшить расход памяти.
</entry>
</row>
</tbody>
</tgroup>
</table>
<note>
<para>
Объединение опций даёт четыре возможные комбинации:
<table>
<title>Комбинации опций функции <function>debug_backtrace</function></title>
<tgroup cols="2">
<tbody>
<row>
<entry><code>debug_backtrace()</code></entry>
<entry morerows="2" valign="middle">
Заполняются оба ключа.
</entry>
</row>
<row>
<entry><code>debug_backtrace(DEBUG_BACKTRACE_PROVIDE_OBJECT)</code></entry>
</row>
<row>
<entry><code>debug_backtrace(1)</code></entry>
</row>
<row>
<entry><code>debug_backtrace(0)</code></entry>
<entry valign="middle">
Не включается ключ <literal>"object"</literal> и заполняется ключ <literal>"args"</literal>.
</entry>
</row>
<row>
<entry><code>debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS)</code></entry>
<entry morerows="1" valign="middle">
Опускается ключ <literal>"object"</literal> <emphasis>и</emphasis> ключ <literal>"args"</literal>.
</entry>
</row>
<row>
<entry><code>debug_backtrace(2)</code></entry>
</row>
<row>
<entry><code>debug_backtrace(DEBUG_BACKTRACE_PROVIDE_OBJECT|DEBUG_BACKTRACE_IGNORE_ARGS)</code></entry>
<entry morerows="1" valign="middle">
Заполняется ключ <literal>"object"</literal> <emphasis>и</emphasis> опускается ключ <literal>"args"</literal>.
</entry>
</row>
<row>
<entry><code>debug_backtrace(3)</code></entry>
</row>
</tbody>
</tgroup>
</table>
</para>
</note>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>limit</parameter></term>
<listitem>
<para>
Параметр ограничивает количество кадров стека в выходном массиве.
Со значением по умолчанию —
<parameter>limit</parameter>=<literal>0</literal> — возвращается весь стек вызовов функций.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1><!-- }}} -->
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Функция возвращает массив вложенных ассоциативных массивов (<type>array</type>).
Следующая таблица приводит список возможных элементов выходного массива:
</para>
<para>
<table>
<title>
Возможные элементы массивов в результатах функции
<function>debug_backtrace</function>
</title>
<tgroup cols="3">
<thead>
<row>
<entry>&Name;</entry>
<entry>&Type;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>function</entry>
<entry><type>string</type></entry>
<entry>
Название текущей функции. Смотрите также описание константы
<link linkend="language.constants.magic">__FUNCTION__</link>.
</entry>
</row>
<row>
<entry>line</entry>
<entry><type>int</type></entry>
<entry>
Текущий номер строки. Смотрите также описание константы
<link linkend="language.constants.magic">__LINE__</link>.
</entry>
</row>
<row>
<entry>file</entry>
<entry><type>string</type></entry>
<entry>
Название текущего файла. Смотрите также описание константы
<link linkend="language.constants.magic">__FILE__</link>.
</entry>
</row>
<row>
<entry>class</entry>
<entry><type>string</type></entry>
<entry>
Название текущего <link linkend="language.oop5">класса</link>. Смотрите также
описание константы <link linkend="language.constants.magic">__CLASS__</link>.
</entry>
</row>
<row>
<entry>object</entry>
<entry><type>object</type></entry>
<entry>
Текущий <link linkend="language.oop5">объект</link>.
</entry>
</row>
<row>
<entry>type</entry>
<entry><type>string</type></entry>
<entry>
Текущий тип вызова функции. При вызове метода объекта функция
возвращает значение "-&gt;". При вызове статического метода класса возвращается "::".
При вызове функции ничего не возвращается.
</entry>
</row>
<row>
<entry>args</entry>
<entry><type>array</type></entry>
<entry>
При вызове этой функции внутри другой функции элементы с этим ключом
содержат списки аргументов функций.
При вызове внутри включаемого файла
элемент содержит названия включённых файлов.
</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Пример генерации обратной трассировки вызовов функцией <function>debug_backtrace</function></title>
<programlisting role="php">
<![CDATA[
<?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';
?>
]]>
</programlisting>
<para>
При выполнении файла <filename>/tmp/b.php</filename>
PHP выведет результат наподобие такого:
</para>
<screen>
<![CDATA[
Привет, друг
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"
}
}
]]>
</screen>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>trigger_error</function></member>
<member><function>debug_print_backtrace</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->