特定の関数のソース コードを名前で取得する方法を探す場合があります。たとえば、「blah」という名前の関数について考えてみましょう:
<code class="php">function blah($a, $b) { return $a*$b; }</code>
「blah」のコード スニペットを取得するプログラム的なアプローチはありますか?
PHP では、ReflectionFunction クラスがその手段を提供します。ソースコードを含む関数メタデータを取得します。これを実現する方法は次のとおりです:
<code class="php">$func = new ReflectionFunction('blah'); $filename = $func->getFileName(); $start_line = $func->getStartLine() - 1; // Adjust for line numbering indexing $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 で関数のソース コードをプログラム的に取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。