我想处理一个文件夹并计算每个全局变量的使用次数。我确实有一个全局变量列表,但如果脚本检测到并输出实例的名称和数量,那就更酷了。但是,这不能在运行时完成。
我怀疑可以在 PHP 中使用 token_get_all 来做到这一点,但文档相当稀疏......
我想处理一个文件夹并计算每个全局变量的使用次数。我确实有一个全局变量列表,但如果脚本检测到并输出实例的名称和数量,那就更酷了。但是,这不能在运行时完成。
我怀疑可以在 PHP 中使用 token_get_all 来做到这一点,但文档相当稀疏......
这是我刚刚编写的一个简单的 FSM,用于演示如何从代码中提取所有全局变量:
$tokens = token_get_all('<?php function a() { global $b,
$c; } ?>');
$state = 0; // 1 for processing T_GLOBAL, 0 otherwise
$global_vars = array();
foreach ($tokens as $token) {
if (!is_array($token)) {
if ($state == 1 && $token == ';') {
$state = 0;
}
continue;
}
if ($token[0] == T_GLOBAL) {
$state = 1;
continue;
}
if ($state == 1 && $token[0] == T_VARIABLE) {
$global_vars[] = $token[1];
continue;
}
}
var_dump($global_vars);
为每个变量添加计数器非常容易。