Как я могу получить имя скрипта, вызывающего функцию?

У меня есть метод log () и вы хотите записать имя скрипта, который его вызвал. Как это возможно в PHP?

В зависимости от вызывающей среды вы должны посмотреть на debug_backtrace и $ _SERVER ['PHP_SELF']

debug_backtrace() покажет вам трассировку стека вызовов и вызовов функций, а $_SERVER['PHP_SELF'] скажет вам исполняемый скрипт, который проще и может работать так же хорошо, как вы хотите. $_SERVER['PHP_SELF'] почти всегда будет скриптом, который $_SERVER['PHP_SELF'] из браузера, например, если у вас были blah.com/admin.php и blah.com/articles.php которые оба вызывали /pages.php чтобы получить список страниц, сохраненных в блоге или что-то в этом роде, и что-то пошло не так – журнал скажет вам, вызывал ли скрипт admin.php или articles.php . Но если pages.php включал functions.php которые были включены libs.php и libs.php, и вы хотели знать, что включенные functions.php , это не сработает – журнал все равно покажет скрипт, который запустил включение ( admin.php или articles.php ). В этом случае вы будете использовать debug_backtrace() .

Вы можете взглянуть на функцию debug_backtrace : в ее выходе вы должны найти то, что ищете 😉

Вы можете взглянуть на этот ответ, который я опубликовал пару дней назад, для получения дополнительной информации и примера.

Взгляните на debug_baktrace .

 $backtrace = debug_backtrace(); print_r($backtrace[1]); 

Используйте debug_backtrace (), чтобы получить ассоциативный массив, содержащий полный столбец, и изучить массив, чтобы вытащить интересующие вас детали.

В дополнение к ответам, уже давшим очень низкотехнологичный ответ, нужно либо добавить _ _ FILE _ _ или basename () в строку, которая регистрируется. (нужно было добавить пробелы для двойного подчеркивания в FILE, чтобы он отображался)