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!