Как узнать, где определена функция с помощью PHP?
Когда мы делаем проекты, он включает в себя несколько модулей, каждый из которых разделен на несколько файлов, а каждый файл содержит множество строк кода. Итак, когда мы объявляем функцию где-то в файлах и забываем, что функция делала или хотим изменить код этой функции, но не можем найти то, где находится функция! Итак, эта статья поможет вам найти расположение функции.
Чтобы узнать местоположение функции в 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