Maison  >  Article  >  développement back-end  >  Comment suivre l’ordre d’exécution des fonctions PHP ?

Comment suivre l’ordre d’exécution des fonctions PHP ?

WBOY
WBOYoriginal
2024-04-17 18:06:021176parcourir

Pour suivre l'ordre d'exécution des fonctions PHP : Installez et configurez l'extension xdebug. Ajoutez le signe @ à la fonction que vous souhaitez tracer. Affichez le fichier trace.xdebug généré dans le répertoire de sortie spécifié, qui contient un rapport détaillé de la séquence d'appel de fonction, des paramètres et de la durée d'exécution.

如何跟踪 PHP 函数的执行顺序?

Comment suivre l'ordre d'exécution des fonctions PHP

Le suivi de l'ordre d'exécution des fonctions PHP est utile lors du débogage et de la compréhension de la logique du code. Étant donné que PHP est peu typé et autorise les appels dynamiques, il est parfois difficile de retracer manuellement le flux d'exécution.

En utilisant l'extension xdebug, nous pouvons facilement retracer l'ordre d'exécution des fonctions et voir les paramètres réels qui leur sont transmis.

Installez et configurez xdebug

  1. Installez l'extension Xdebug : sudo apt install php-xdebug (Ubuntu) ou pecl install xdebug (autres systèmes)
  2. sudo apt install php-xdebug (Ubuntu) 或 pecl install xdebug (其他系统)
  3. 在 php.ini 中启用它:zend_extension=xdebug.so
  4. 设置 xdebug.trace_output_dir 为跟踪文件输出目录:xdebug.trace_output_dir = /tmp

触发跟踪

要触发跟踪,可以在要跟踪的函数上附加 @ 符号,如下所示:

function foo() {
  echo "This is foo\n";
}

function bar() {
  echo "This is bar\n";
}

function main() {
  // 跟踪 foo 和 bar 的执行
  @foo();
  @bar();
}

查看跟踪

触发跟踪后,您可以在指定的输出目录 (/tmp 在示例中) 中找到一个 trace.xdebug 文件。这个文件包含一个详细的报告,列出了函数调用的顺序、传递给它们的实际参数以及每个函数的执行持续时间。

实战案例

假设您有一个复杂的代码,其中函数 A 调用函数 B,函数 B 又调用函数 C。您想查看函数的执行顺序以及传递给每个函数的参数。

通过将 @ 符号添加到函数调用上,您可以触发 xdebug 跟踪。查看 trace.xdebug 文件,您将看到以下输出:

[21] -> /path/to/file.php
[22] >> function main() {
[24] -> /path/to/file.php:25
[25] >> function A() {
[...]

输出显示了函数执行的顺序,从 main 开始到 AActivez-le dans php.ini : zend_extension=xdebug.so

Définissez xdebug.trace_output_dir comme répertoire de sortie du fichier de trace : xdebug.trace_output_dir = /tmp🎜🎜Déclencher la trace🎜🎜🎜Pour déclencher le traçage, vous pouvez ajouter le symbole @ à la fonction que vous souhaitez tracer, comme ceci : 🎜rrreee🎜🎜Afficher la trace🎜🎜 🎜Trigger Après le traçage, vous pouvez trouver un fichier trace.xdebug dans le répertoire de sortie spécifié (/tmp dans l'exemple). Ce fichier contient un rapport détaillé répertoriant l'ordre des appels de fonction, les arguments réels qui leur sont transmis et la durée d'exécution de chaque fonction. 🎜🎜🎜Cas pratique🎜🎜🎜Supposons que vous ayez un code complexe dans lequel la fonction A appelle la fonction B, qui à son tour appelle la fonction C. Vous voulez voir l'ordre dans lequel les fonctions sont exécutées et les arguments transmis à chaque fonction. 🎜🎜Vous pouvez déclencher le traçage xdebug en ajoutant le symbole @ à un appel de fonction. En regardant le fichier trace.xdebug, vous verrez le résultat suivant : 🎜rrreee🎜Le résultat montre l'ordre d'exécution de la fonction, en commençant par main et en terminant par Un appel. Vous pouvez également afficher les paramètres transmis à chaque fonction. 🎜

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