関数の中で関数を呼んでさらに・・・
で結局どういう流れで呼ばれてるの?うぉー帰りたい!!
ってことあります。
そんなときはdebug_backtrace()
です。
test.php
<?php function speak($word) { tell($word); } function tell($word) { propagate($word); } function propagate($word) { echo $word; print_r(debug_backtrace()); } speak('これはテストです');
ブラウザの出力
これはテストです Array ( [0] => Array ( [file] => /var/www/html/test.php [line] => 7 [function] => propagate [args] => Array ( [0] => これはテストです ) ) [1] => Array ( [file] => /var/www/html/test.php [line] => 3 [function] => tell [args] => Array ( [0] => これはテストです ) ) [2] => Array ( [file] => /var/www/html/test.php [line] => 15 [function] => speak [args] => Array ( [0] => これはテストです ) ) )
今回は1ファイルに複数の関数を記述して実行していますが
共通関数ファイル等を読み込み、その中の関数を実行する場合でも有効です。