Frage:
Ist es möglich, den Quellcode eines PHP programmgesteuert abzurufen? Hat die Funktion ihren Namen erhalten?
Hintergrund:
Betrachten Sie beispielsweise den folgenden Code:
<code class="php">function blah($a, $b) { return $a*$b; } echo getFunctionCode("blah");</code>
Ist es machbar, eine solche Funktion zu implementieren? ?
Antwort:
Ja, dies ist mit der ReflectionFunction-Klasse von PHP erreichbar. Hier ist ein Codeausschnitt, der zeigt, wie:
<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>
Dieser Code ruft den Quellcode der Funktion ab, indem er die PHP-Quelldatei analysiert und die Zeilen extrahiert, die dem Funktionskörper entsprechen. Die ReflectionFunction-Klasse bietet praktische Methoden zum Bestimmen des Dateispeicherorts der Funktion sowie der Start- und Endzeilennummern.
Das obige ist der detaillierte Inhalt vonKann der PHP-Funktionsquellcode programmgesteuert abgerufen werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!