TGViewer
PHP Digest PHP Digest @phpdigest · 8.18K subscribers
Post #132 6.49K
Также единогласно принято предложение об объектной альтернативе для token_get_all().

В PHP 8 вместо
foreach (token_get_all($code) as $token) {
if (is_string($token)) {
// одиночный символ, например, ;
continue;
}

[$pos, $text, $line] = $token;
}

можно будет писать
foreach (PhpToken::getAll($code) as $token) {
$token->id;
$token->text;
$token->line;
$token->pos;
$token->is([T_CLASS, T_CONST]);
}

При прочих равных второй вариант потребует меньше памяти и времени. Это значит, что различные парсеры, например, nikic/php-parser, doctrine/annotations или twig/twig в будущем будут работать немного быстрее 😊

Кроме того, класс PhpToken легко расширяется, статический метод getAll() предусмотрительно возвращает static[].

@vudaltsov | https://twitter.com/vudaltsov
More from @phpdigest
  1. Jul 8, 2026Первый официальный State of PHP опрос открыт: https://jb.gg/php-survey-2026 В сообществе у…
  2. Jun 16, 2026Swoole AOT переименовали в TypePHP https://mp.weixin.qq.com/s/eGrSd2g-88I4jm6KIdecSw Пока…
  3. Jun 9, 2026PHPverse 2026 🎉🐘 Трансляция из офиса JetBrains в Амстердаме в прямом эфире прямо сейчас…
  4. Jun 5, 2026🎙 PHPverse возвращается – 9 июня, 14:00 (11:00 UTC) https://lp.jetbrains.com/phpverse-202…
  5. Apr 23, 2026Команда Swoole работает над компилятором для PHP https://mp.weixin.qq.com/s/05I3xe4pgRJufS…
  6. Apr 1, 2026Дайджест PHP – Февраль-Март 2026 Подборка свежих новостей, инструментов, видео и материало…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →