So rufen Sie den PHP-Funktionsquellcode programmgesteuert ab

Susan Sarandon
Freigeben: 2024-10-19 07:32:01
Original
845 Leute haben es durchsucht

How to Programmatically Retrieve PHP Function Source Code

Abrufen des PHP-Funktionsquellcodes mit programmgesteuerten Mitteln

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

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!

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