Решил поэкспериментировать с этой функцией function a(){ echo 'a'; } function tick(){ $bt = debug_backtrace(); var_dump($bt); } declare(ticks=1); register_tick_function('tick'); a(); Скрипт отображает два трейса с одной функцией tick(). Функции a() ни в одном трейсе нет. Однако если я подключаю функцию a() через require() она в трейсе появляется. Как это понять?
Однако потому, что ф-я debug_backtrace() возвращает не тот стек, что в вакууме, а тот, что относится к функции, в которой и была вызвана.
Не понял. При чем тут вызов функции? Было так (функции в трейсе нет): function a(){ echo 'a'; } Стало так (функция в трейсе есть): require('function_a');