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

Опубликовано: 18 Декабря, 2021

Когда мы делаем проекты, он включает в себя несколько модулей, каждый из которых разделен на несколько файлов, а каждый файл содержит множество строк кода. Итак, когда мы объявляем функцию где-то в файлах и забываем, что функция делала или хотим изменить код этой функции, но не можем найти то, где находится функция! Итак, эта статья поможет вам найти расположение функции.

Чтобы узнать местоположение функции в PHP, мы можем использовать встроенный класс ReflectionFunction () . Когда имя функции, детали которой нам требуются, передается конструктору класса, он получает несколько деталей относительно этой функции.

  • getFileName: возвращает расположение файла функции.
  • getNumberOfParameters: возвращает количество параметров, переданных функции.
  • getStartLine: возвращает начальную строку функции.

Синтаксис:

 $ details = new ReflectionFunction ('имя_функции');

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

<?php
$details = new ReflectionFunction( 'printing' );
print $details ->getFileName() . ':' . $details ->getStartLine();
?>

Шаги по запуску кода:

  • Создайте файл с именем file_name.php
  • Скопируйте приведенный выше код в файл.
  • Сохраните файл в папке локального сервера. В случае WampServer найдите папку «www» внутри папки «wamp64» на диске C и сохраните файл там.
  • Запустите ваш Wamp-сервер.
  • Откройте любой браузер и введите localhost / fun.php, чтобы получить следующий результат.

Выход:

C:  wamp64  www  имя_файла.php: 2 

Ниже приведены примеры, иллюстрирующие функцию ReflectionFunction в PHP:

Пример 1: Предположим, что в данном коде мы хотим найти расположение функции «печать». В выводе можно увидеть имя файла и расположение функции печати.

<?php
function printing()
{
echo 'Welcome to GeeksforGeeks' ;
}
$details = new ReflectionFunction( 'printing' );
echo 'File location : ' . $details ->getFileName().
', Starting line : ' . $details ->getStartLine().
', Parametrs passed : ' . $details ->getNumberOfParameters();
?>

Выход:

 Расположение файла: /home/7de5f19b219d214c719df5f3839a7f61.php, 
Стартовая линия: 2, пройденных параметров: 0

Пример 2: Предположим, что в данном коде мы хотим найти расположение функции «гики». В выводе можно увидеть имя файла, местоположение, начальную строку и параметр, переданный фанатам функции.

<?php
function printing() {
echo 'Welcome to GeeksforGeeks' ;
}
function geeks() {
echo 'This is the article How to find out where
a function is defined using PHP?'; с is defined using PHP?';
}
$details = new ReflectionFunction( 'geeks' );
print 'File location :' . $details ->getFileName().
' Starting line :' . $details ->getStartLine().
' No. of parametrs passed :' . $details ->getNumberOfParameters();
?>

Выход:

 Расположение файла: /home/dd96d70bdf5ff03fea0ea24110bae9ff.php 
Начальная строка: 7 Количество переданных параметров: 0