Maison  >  Article  >  développement back-end  >  À propos de la fonction debug_backtrace() en PHP qui imprime les informations de débogage à l'emplacement de l'appel

À propos de la fonction debug_backtrace() en PHP qui imprime les informations de débogage à l'emplacement de l'appel

不言
不言original
2018-07-14 17:09:021897parcourir

Cet article présente principalement les informations de débogage sur le point d'appel d'impression de la fonction debug_backtrace() en PHP. Il a une certaine valeur de référence. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer

debug_backtrace

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

debug_backtrace — Générer une trace

Description

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

debug_backtrace() génère une trace PHP).

Paramètres

  • options

  • Depuis la version 5.3.6, ce paramètre est un masque de bits pour le options suivantes Code :

    DEBUG_BACKTRACE_PROVIDE_OBJECT
    option debug_backtrace()
    debug_backtrace() 选项
    DEBUG_BACKTRACE_PROVIDE_OBJECT 是否填充 "object" 的索引。
    DEBUG_BACKTRACE_IGNORE_ARGS 是否忽略 "args" 的索引,包括所有的 function/method 的参数,能够节省内存开销。
    S'il faut remplir l'index de "objet".
    DEBUG_BACKTRACE_IGNORE_ARGS S'il faut ignorer l'index de "args", y compris tous les paramètres de fonction/méthode, pour économiser la surcharge de mémoire.

    Avant la version 5.3.6, les seules valeurs pouvant être utilisées étaient TRUE ou FALSE, qui étaient respectivement égales à l'opportunité de définir l'option DEBUG_BACKTRACE_PROVIDE_OBJECT.

  • limit

  • Depuis la version 5.4.0, ce paramètre peut être utilisé pour limiter le nombre de frames de pile renvoyés. La valeur par défaut est (limit=0), qui renvoie tous les cadres de pile.

Valeur de retour

Renvoie un tableau contenant de nombreux tableaux associatifs. Éléments pouvant être renvoyés :

function
Éléments pouvant être renvoyés par
有可能从 debug_backtrace() 返回的元素
名字 类型 说明
function string 当前的函数名,参见: __FUNCTION__。
line integer 当前的行号。参见: __LINE__。
file string 当前的文件名。参见: __FILE__。
class string 当前 class 的名称。参见 __CLASS__
object object 当前的 object。
type string 当前调用的类型。如果是一个方法,会返回 "->"。如果是一个静态方法,会返回 "::"。 如果是一个函数调用,则返回空。
args array 如果在一个函数里,这会列出函数的参数。 如果是在一个被包含的文件里,会列出包含的文件名。
debug_backtrace()

Nom Type Description
string
版本 说明
5.4.0 添加了可选的参数 limit
5.3.6 参数 provide_object 改成 options,并且增加了可选参数 DEBUG_BACKTRACE_IGNORE_ARGS
5.2.5 添加了可选参数 provide_object
5.1.1 添加了当前的 object 为可能返回的元素。
Le nom de la fonction actuelle, voir : __FUNCTION__.
ligne entier Le numéro de ligne actuel. Voir : __LINE__.
file string Le nom du fichier actuel. Voir : __FILE__.
class string Le nom de la classe actuelle. Voir __CLASS__
object object l'objet actuel.
type string Le type de l'appel en cours. S'il s'agit d'une méthode, "->" sera renvoyé. S'il s'agit d'une méthode statique, "::" sera renvoyé. S'il s'agit d'un appel de fonction, renvoie null.
args array Si dans Au sein d'une fonction, ceci répertorie les arguments de la fonction. S'il se trouve dans un fichier inclus, le nom du fichier inclus sera répertorié.
Journal de mise à jour
Version th> Description
5.4.0 Paramètres facultatifs ajoutés .
5.3.6 Le paramètre provide_object a été modifié en , et les paramètres facultatifs ont été ajout de DEBUG_BACKTRACE_IGNORE_ARGS.
5.2.5 Ajout du paramètre facultatif provide_object.
5.1.1 Ajout de l'objet actuel comme élément renvoyé possible.

Exemple

Exemple n°1 Exemple debug_backtrace()

<?php
// filename: /tmp/a.php
function a_test($str)
{
    echo "\nHi: $str";
    var_dump(debug_backtrace());
}
a_test(&#39;friend&#39;);
?>
<?php
// filename: /tmp/b.php
include_once &#39;/tmp/a.php&#39;;
?>

Exécution Le résultat renvoyé est similaire au suivant :

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"
  }
}

Ci-dessus, c'est tout le contenu de cet article. J'espère qu'il sera utile à l'étude de tout le monde. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois !

Recommandations associées :

Comment utiliser var_export en PHP

À propos d'un problème rencontré avec les opérateurs conditionnels PHP et la solution

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn