Cara Mendapatkan Kod Sumber Fungsi PHP secara Program

Susan Sarandon
Lepaskan: 2024-10-19 07:32:01
asal
755 orang telah melayarinya

How to Programmatically Retrieve PHP Function Source Code

Mengambil Kod Sumber Fungsi PHP melalui Cara Programatik

Soalan:

Adakah ia boleh dilakukan untuk mengekstrak kod sumber secara pemrograman fungsi PHP berdasarkan namanya? Pada asasnya, objektifnya adalah untuk mendapatkan semula definisi fungsi (cth., function blah($a, $b) { return $a*$b; }) secara dinamik.

Selain itu, adakah terdapat sebarang fungsi PHP yang boleh digunakan untuk pembinaan semula kod deskriptif sendiri, menghapuskan keperluan untuk mengakses fail sumber secara langsung? Java menawarkan Reflection API untuk tujuan ini, tetapi adakah terdapat PHP yang setara?

Jawapan:

Dalam PHP, kelas ReflectionFunction menyediakan fungsi yang diperlukan untuk tugas ini. Berikut ialah contoh:

<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>
Salin selepas log masuk

Atas ialah kandungan terperinci Cara Mendapatkan Kod Sumber Fungsi PHP secara Program. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!