【PHP8.x】token_get_all関数の使い方

作成日: 更新日:

token_get_all関数は、PHPのソースコードを解析し、それを構成する最小単位である「トークン」の配列として取得する関数です。この関数は、与えられたPHPのコード文字列を読み込み、PHPの文法規則に従って、キーワード、変数名、文字列、演算子、コメントといった意味のある要素に分解します。

この機能は、ソースコードの構造をプログラム的に分析したい場合に非常に有用です。例えば、コードの自動整形ツールや静的解析ツールを作成する際、特定のコードパターンを検出したり、コメントの内容を抽出したり、あるいは独自のコード変換処理を行う際の基盤となります。

token_get_all関数は、解析対象のPHPソースコード全体を文字列として引数に取ります。実行されると、そのソースコードが意味のある最小単位に分割されたトークンの配列を返します。この配列の各要素は、さらに配列または単一の文字列のいずれかです。配列として返されるトークンは、その種類を示す数値ID(例:T_VARIABLEなど)、実際のトークン文字列(例:$myVar)、そしてそのトークンが出現する行番号の3つの情報を含みます。一方、文字列として返されるトークンは、セミコロン;や括弧()など、単一の文字で表現される記号です。

このように、コードを詳細な要素に分解することで、PHPインタープリタが行う構文解析の初期段階を模倣し、開発支援ツールや高度なコード処理ロジックの実装を可能にします。通常のアプリケーション開発で直接使う機会は少ないかもしれませんが、PHPの内部構造を理解し、より高度な開発を行う上で役立つ重要な関数です。

基本的な使い方

構文(syntax)

<?php
$phpCodeString = '<?php echo "Hello World"; ?>';
$tokensArray = token_get_all($phpCodeString);

引数(parameters)

string $code, int $flags = 0

  • string $code: 解析対象のPHPコードを指定する文字列
  • int $flags = 0: トークン取得時の挙動を制御するフラグを指定する整数

戻り値(return)

array

PHPのtoken_get_all関数は、PHPソースコードをトークン(言語の最小単位)の配列として返します。各トークンは、その型、値、行番号などの情報を持つ配列として表現されます。

【PHP8.x】token_get_all関数の使い方 | いっしー@Webエンジニア