Frage:
Ist es möglich, den Quellcode von programmgesteuert zu extrahieren? eine PHP-Funktion basierend auf ihrem Namen? Im Wesentlichen besteht das Ziel darin, die Funktionsdefinition (z. B. function blah($a, $b) { return $a*$b; }) dynamisch abzurufen.
Gibt es darüber hinaus irgendwelche PHP-Funktionen, die sein können? Wird für die selbstbeschreibende Coderekonstruktion verwendet, sodass kein direkter Zugriff auf die Quelldatei erforderlich ist? Java bietet für diesen Zweck die Reflection-API an, aber gibt es ein PHP-Äquivalent?
Antwort:
In PHP stellt die ReflectionFunction-Klasse die für diese Aufgabe benötigte Funktionalität bereit. Hier ist ein Beispiel:
<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>
Das obige ist der detaillierte Inhalt vonSo rufen Sie den PHP-Funktionsquellcode programmgesteuert ab. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!