問題:
以程式方式擷取PHP 函數原始碼是否可行一個基於其名稱的PHP 函數?基本上,目標是動態檢索函數定義(例如, function blah($a, $b) { return $a*$b; })。
此外,是否有任何 PHP 函數可以用於自描述程式碼重構,而無需直接存取原始檔? Java 為此目的提供了 Reflection API,但是 PHP 有等效的嗎?
答案:
在 PHP 中,ReflectionFunction 類別提供了此任務所需的功能。這是一個範例:
<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>
以上是如何以程式設計方式檢索 PHP 函數原始碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!