1
0
mirror of https://github.com/php/doc-ru.git synced 2026-03-27 09:12:07 +01:00
Files
archived-doc-ru/reference/errorfunc/functions/debug-backtrace.xml
2021-01-05 20:16:26 +03:00

251 lines
7.6 KiB
XML
Raw 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: 86e6094e86b84a51d00ab217ac50ce8dde33d82a Maintainer: tmn Status: ready -->
<!-- Reviewed: yes -->
<!-- $Revision$ -->
<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>DEBUG_BACKTRACE_PROVIDE_OBJECT</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>
Начиная с PHP 5.3.6, этот аргумент является битовой маской для следующих
настроек:
<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>
До версии 5.3.6 принимаются только значения &true; или &false;, которые
означают, задана настройка
<constant>DEBUG_BACKTRACE_PROVIDE_OBJECT</constant> или нет
соответственно.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>limit</parameter></term>
<listitem>
<para>
Начиная с PHP 5.4.0, этот аргумент используется для ограничения количества
вызовов функций, которые будут выведены. По умолчанию
(<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.predefined">__FUNCTION__</link>.
</entry>
</row>
<row>
<entry>line</entry>
<entry><type>int</type></entry>
<entry>
Текущий номер строки. Смотрите также
<link linkend="language.constants.predefined">__LINE__</link>.
</entry>
</row>
<row>
<entry>file</entry>
<entry><type>string</type></entry>
<entry>
Имя текущего файла. Смотрите также
<link linkend="language.constants.predefined">__FILE__</link>.
</entry>
</row>
<row>
<entry>class</entry>
<entry><type>string</type></entry>
<entry>
Имя текущего <link linkend="language.oop5">класса</link>. Смотрите также
<link linkend="language.constants.predefined">__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>
Текущий тип вызова функции. Если это вызов метода объекта, будет
выведено "->". Если это вызов статического метода класса, то "::".
Если это простой вызов функции, не выводится ничего.
</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>:
</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
-->