ホームページ >バックエンド開発 >PHPチュートリアル >PHP 関数のソース コードをプログラムで取得できますか?
質問:
PHP のソース コードをプログラムで取得することは可能ですか?このような関数を実装するのは可能ですか?
背景:
たとえば、次のコードを考えてみましょう:
<code class="php">function blah($a, $b) { return $a*$b; } echo getFunctionCode("blah");</code>
そのような関数を実装することは可能ですか? ?
答え:
はい、これは PHP の ReflectionFunction クラスを使用して実現できます。以下に、その方法を示すコード スニペットを示します。
<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>
このコードは、PHP ソース ファイルを解析し、関数本体に対応する行を抽出することにより、関数のソース コードを取得します。 ReflectionFunction クラスは、関数のファイルの場所、開始行番号と終了行番号を決定する便利なメソッドを提供します。
以上がPHP 関数のソース コードをプログラムで取得できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。