Splits given source into PHP tokens, represented by PhpToken objects.

# PhpToken::tokenize

(PHP 8)

PhpToken::tokenize — Splits given source into PHP tokens, represented by PhpToken objects.

### 说明

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

Returns an array of PhpToken objects representing given `code`.

### 参数

`code`

  The PHP source to parse.

`flags`

  Valid flags:

  - `TOKEN_PARSE` - Recognises the ability to use reserved words in specific contexts.

### 返回值

An array of PHP tokens represented by instances of PhpToken or its descendants. This method returns static[] so that PhpToken can be seamlessly extended.

### 示例

示例 #1 PhpToken::tokenize() example

    <?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