Возможный дубликат:
Как определить, где определена функция?
включил php-файл, чтобы узнать его имя?
Могу ли я получить имя файла и номер строки начала объявления функции в PHP?
Скажем, у меня есть следующий код:
1. /** 2. * This function shows the foo bar. 3. */ 4. function foo_bar($subject) { 5. echo "Foo bar:\n"; 6. if ($subject == "none") { 7. trigger_error("Wrong argument given to 'foo_bar()' in ... on line ....", E_USER_WARNING); 8. } 9. ... 10. }
Когда я вызываю foo_bar("none")
, функция должна вызывать такую ошибку:
Предупреждение: неправильный аргумент, присвоенный 'foo_bar ()' в / home / web / mcemperor в строке 4.
Могу ли я получить имя файла и номер строки начала объявления функции?
Вы ищете ReflectionFunction .
$r = new ReflectionFunction('foo_bar'); $file = $r->getFileName(); $startLine = $r->getStartLine();
Это просто … Он работает для любой определенной функции, независимо от того, что вы передали аргументу конструктора.
Имя функции можно найти с помощью исключений PHP, которые более интересны для запуска ошибок: http://www.php.net/manual/en/exception.gettrace.php
$backtrace = debug_backtrace(); $line = $backtrace[0]['line']; $file = $backtrace[0]['file'];