Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk menjejaki perintah pelaksanaan fungsi PHP?

Bagaimana untuk menjejaki perintah pelaksanaan fungsi PHP?

WBOY
WBOYasal
2024-04-17 18:06:021254semak imbas

Untuk menjejaki susunan pelaksanaan fungsi PHP: Pasang dan konfigurasikan sambungan xdebug. Tambahkan tanda @ pada fungsi yang anda ingin jejak. Lihat fail trace.xdebug yang dijana dalam direktori output yang ditentukan, yang mengandungi laporan terperinci tentang urutan panggilan fungsi, parameter dan tempoh pelaksanaan.

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

Cara menjejaki tertib pelaksanaan fungsi PHP

Menjejaki tertib pelaksanaan fungsi PHP berguna semasa menyahpepijat dan memahami logik kod. Oleh kerana PHP ditaip secara longgar dan membenarkan panggilan dinamik, kadangkala sukar untuk mengesan aliran pelaksanaan secara manual.

Menggunakan sambungan xdebug kita boleh mengesan susunan pelaksanaan fungsi dengan mudah dan melihat hujah sebenar yang diserahkan kepada mereka.

Pasang dan konfigurasikan xdebug

  1. Pasang sambungan Xdebug: sudo apt install php-xdebug (Ubuntu) atau pecl install xdebug (sistem lain)
  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 开始到 ADayakannya dalam php.ini: zend_extension=xdebug.so

Tetapkan xdebug.trace_output_dir sebagai direktori output fail surih: xdebug.trace_output_dir = /tmp🎜🎜Trigger tracing🎜🎜🎜Untuk mencetuskan tracing, anda boleh menambahkan simbol @ pada fungsi yang ingin anda kesan, seperti ini: 🎜rrreee🎜🎜Lihat jejak🎜🎜 🎜Pencetus Selepas mengesan, anda boleh menemui fail trace.xdebug dalam direktori output yang ditentukan (/tmp dalam contoh). Fail ini mengandungi laporan terperinci yang menyenaraikan susunan panggilan fungsi, hujah sebenar yang diserahkan kepada mereka, dan tempoh pelaksanaan setiap fungsi. 🎜🎜🎜Kes Praktikal🎜🎜🎜Andaikan anda mempunyai kod kompleks di mana fungsi A memanggil fungsi B, yang seterusnya memanggil fungsi C. Anda ingin melihat susunan fungsi dilaksanakan dan hujah yang dihantar kepada setiap fungsi. 🎜🎜Anda boleh mencetuskan pengesanan xdebug dengan menambahkan simbol @ pada panggilan fungsi. Melihat pada fail trace.xdebug, anda akan melihat output berikut: 🎜rrreee🎜Output menunjukkan susunan fungsi dilaksanakan, bermula dengan utama dan berakhir dengan Panggilan A. Anda juga boleh melihat parameter yang dihantar kepada setiap fungsi. 🎜

Atas ialah kandungan terperinci Bagaimana untuk menjejaki perintah pelaksanaan fungsi PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn