(ユーザー定義の) PHP 関数のソース コードを文字列で取得する方法を見つけようとしています。
通常のコードの場合、これは簡単です。リフレクションを使用すると、関数が定義されているファイルと行番号を見つけることができます。次に、ファイルを開いて関数のソース コードを読むことができます。
関数が評価されたコードで定義されている場合、これは機能しません。すべての評価済みコードを記録したくありません。
これは可能ですか?はいの場合、どのように?
コード例:
function myfunction() {
echo "Test";
}
eval('
function myevalfunction() {
echo "Test";
}
');
$a = new ReflectionFunction('myfunction');
echo $a;
$b = new ReflectionFunction('myevalfunction');
echo $b;
出力:
Function [ <user> <visibility error> function myfunction ] {
@@ test.php 3 - 5
}
Function [ <user> <visibility error> function myevalfunction ] {
@@ test.php(11) : eval()'d code 2 - 4
}