Maison  >  Article  >  développement back-end  >  Le code source de la fonction PHP peut-il être récupéré par programme ?

Le code source de la fonction PHP peut-il être récupéré par programme ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-19 07:33:30448parcourir

Can PHP Function Source Code be Retrieved Programmatically?

Extraire le code source d'une fonction PHP par programme

Question :

Est-il possible de récupérer par programme le code source d'un PHP fonction étant donné son nom ?

Contexte :

Par exemple, considérons le code suivant :

<code class="php">function blah($a, $b) { return $a*$b; }
echo getFunctionCode("blah");</code>

Est-il possible d'implémenter une telle fonction ?

Réponse :

Oui, cela est réalisable en utilisant la classe ReflectionFunction de PHP. Voici un extrait de code qui montre comment :

<code class="php">$func = new ReflectionFunction('myfunction');
$filename = $func->getFileName();
$start_line = $func->getStartLine() - 1; // subtract 1 to obtain the correct function block
$end_line = $func->getEndLine();
$length = $end_line - $start_line;

$source = file($filename);
$body = implode("", array_slice($source, $start_line, $length));
print_r($body);</code>

Ce code récupère le code source de la fonction en analysant le fichier source PHP et en extrayant les lignes correspondant au corps de la fonction. La classe ReflectionFunction fournit des méthodes pratiques pour déterminer l'emplacement du fichier de la fonction, ainsi que les numéros de ligne de début et de fin.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn