Question :
Est-il possible d'extraire par programme le code source de une fonction PHP basée sur son nom ? Essentiellement, l'objectif est de récupérer la définition de la fonction (par exemple, function blah($a, $b) { return $a*$b; }) de manière dynamique.
De plus, existe-t-il des fonctions PHP qui peuvent être utilisé pour la reconstruction de code autodescriptif, éliminant ainsi le besoin d'accéder directement au fichier source ? Java propose l'API Reflection à cet effet, mais existe-t-il un équivalent PHP ?
Réponse :
En PHP, la classe ReflectionFunction fournit les fonctionnalités nécessaires à cette tâche. Voici un exemple :
<code class="php">$func = new ReflectionFunction('myfunction'); $filename = $func->getFileName(); $start_line = $func->getStartLine() - 1; // subtract 1 to account for line numbering peculiarities $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 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!