プログラムによる PHP 関数のソース コードの抽出
指定された関数の名前に関連付けられたソース コードをプログラムから取得できますか?次のシナリオを考えてみましょう:
function blah($a, $b) { return $a*$b; } echo getFunctionCode("blah");
そのような操作は実現可能ですか?ソース ファイルに直接アクセスせずに関数またはクラス コードを再構築できる PHP 関数はありますか?
関数のリフレクション
ReflectionFunction クラスは、次の解決策を提供します。このクエリ。これにより、実行可能コードを含む関数に関する情報をイントロスペクトして取得できるようになります。以下に使用例を示します。
$func = new ReflectionFunction('myfunction'); $filename = $func->getFileName(); $start_line = $func->getStartLine() - 1; // Adjust for index-based lines $end_line = $func->getEndLine(); $length = $end_line - $start_line; $source = file($filename); $body = implode("", array_slice($source, $start_line, $length)); print_r($body);
このコードは関数のソース コードを取得し、他の文字列と同じ方法で出力または操作できます。 ReflectionFunction クラスは、関数に関する詳細情報を抽出するための包括的なメソッド セットを提供し、開発者が PHP コードを動的に分析および変更できるようにします。
以上がPHP 関数のソース コードをプログラムで取得できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。