Intereting Posts
Memcache Vs. Memcached Проблемы с синхронизацией сети, вызывающие PHP, «не удалось открыть поток: нет такого файла или каталога» проблема с сеансом по субдомену только для google chrome Использование неопределенной константы STDIN – предполагается «STDIN» в C: \ wamp \ www \ study \ sayHello.php в строке 5 PDO Автоматическое сглаживание при извлечении? как сделать этот регистр preg_match незаметным? HTML – изменение цвета в текстовой области из опции внутри поля выбора, сгенерированного из mysql Пользовательская функция PHP для проверки правильного пароля в Joomla Php curl set ssl версия Задание загрузки изображения в PHP. Работает локально, но ломается на реальном Linux-сервере mysqli_close (): Не удалось получить mysqli в Импортировать файл JSON в базу данных MYSQL с помощью php PHP: создать массив для диапазона Как получить статью intro Image by Id Joomla 3 JSON_ENCODE многомерного массива, дающего разные результаты

имя функции ($ param, $ line = __LINE__, $ file = __FILE__) {};

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

как если бы я вызывал __LINE__ или __FILE__ в функции, он будет использовать строку и файл, в котором находится определение функции.

но я не хочу пропускать __LINE__ и __FILE__ в функцию каждый раз.

поэтому, если я задал их как параметры по умолчанию, они исходят из определения функции или откуда она вызывается?

Solutions Collecting From Web of "имя функции ($ param, $ line = __LINE__, $ file = __FILE__) {};"

Единственный способ – использовать debug_backtrace() , но, как сказано в названии, он предназначен для отладки. Ваш код не должен придавать никакого значения или функциональности в производстве, основываясь на том, где / когда он вызывается.

Выполнение того, что вы предлагаете, похоже, не работает.

Вы можете сделать это так, но я не уверен, почему вы хотите это сделать, и что нет лучшего подхода к тому, чего вы пытаетесь достичь – см . Ответ Wrikken .

 <?php function test() { $backtrace = debug_backtrace(); $last = $backtrace[0]; echo "{$last['function']}() called from {$last['file']} line {$last['line']}\r\n"; } test(); 

Это так поздно, но, возможно, может быть полезно, вы можете использовать get_called_class () для имени класса, который вызывается, и не проходят, как параметр, установленный для CLASS .

если вы хотите использовать эту информацию в каком-то сообщении об ошибке, существует функция trigger_error() которая приведет к возникновению собственной ошибки PHP, поэтому она будет отображаться обычным образом PHP – с именем файла, номером строки и предоставленным текстом.

Наиболее аккуратная функция этой функции ведет себя в соответствии с текущими настройками обработки ошибок:

 ini_set('display_errors',1); trigger_error("Horrible bug found!"); 

будет распечатываться непосредственно, чтобы отобразить сообщение об ошибке следующим образом:

 Notice: Horrible bug found! in /path/file.php on line 2 

очень удобно для разработки
в то время как этот код

 ini_set('display_errors',0); ini_set('log_errors',1); trigger_error("Horrible bug found!"); 

будет помещен в журнал ошибок для будущей ссылки
обязательный для производства