Heim > Backend-Entwicklung > PHP-Tutorial > Kann der PHP-Funktionsquellcode programmgesteuert abgerufen werden?

Kann der PHP-Funktionsquellcode programmgesteuert abgerufen werden?

Patricia Arquette
Freigeben: 2024-10-19 07:33:30
Original
475 Leute haben es durchsucht

Can PHP Function Source Code be Retrieved Programmatically?

PHP-Funktionsquellcode programmgesteuert extrahieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage