ソースコードを PhpToken オブジェクトで表現されたトークンに分割する

# PhpToken::tokenize

(PHP 8)

PhpToken::tokenize — ソースコードを PhpToken オブジェクトで表現されたトークンに分割する

### 説明

public static function PhpToken::tokenize(string `$code`, int `$flags` = 0): array

与えられた `code` を表現する PhpToken オブジェクトの配列を返します。

### パラメータ

`code`

  パースする PHP のコード。

`flags`

  有効なフラグ:

  - `TOKEN_PARSE` - 特定のコンテクストで予約語を認識します。

### 戻り値

PhpToken、またはそのサブクラスで表現される、PHPトークンの配列を返します。 このメソッドの戻り値は、PhpToken をシームレスに拡張できるように、 static[] 型になっています。

### 例

例1 PhpToken::tokenize() の例

    <?php
    $tokens = PhpToken::tokenize('<?php echo; ?>');

    foreach ($tokens as $token) {
        echo "Line {$token->line}: {$token->getTokenName()} ('{$token->text}')", PHP_EOL;
    }

上の例の出力は以下となります。

    Line 1: T_OPEN_TAG ('<?php ')
    Line 1: T_ECHO ('echo')
    Line 1: ; (';')
    Line 1: T_WHITESPACE (' ')
    Line 1: T_CLOSE_TAG ('?>')

例2 Extending PhpToken

    <?php

    class MyPhpToken extends PhpToken {
        public function getUpperText() {
            return strtoupper($this->text);
        }
    }

    $tokens = MyPhpToken::tokenize('<?php echo; ?>');
    echo "'{$tokens[0]->getUpperText()}'";

上の例の出力は以下となります。

    '<?PHP '

### 参考

- token_get_all() - 指定したソースを PHP トークンに分割する

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open