有没有一种快速简洁的方法可以在PHP中找到全局变量的声明
如果我们处理的是一个大型代码库,其中全局变量可能在许多不同的文件中被引用:
- 使用
ctags
跳转到声明将转到本地语句,在该语句中,全局将进入当前文件的作用域 - 使用
grep
或ack
搜索global $foo
会得到一个文件列表,其中全局变量已进入作用域,但没有全局变量的确切声明
有没有任何工具/vim plugin/etc可以告诉你第一次声明全局的确切位置?
更新:我想您可以设置一个监视断点并查找对变量的第一次访问。不幸的是,Xdebug中还不支持这种类型的断点,所以对于我的特定设置,它不起作用。
您是基于Unix的操作系统吗?
我通常做一些类似grep -rn 'global $myvar' .
的事情
在顶级目录中。这将在当前目录中的文件中递归搜索声明。
或者,如果你想获得幻想,你可以只搜索PHP文件:
grep -rn --include '*.php' 'global $myvar' .
您所找到的global $foo
声明之外不需要任何声明。这些声明了全局变量。全局变量很容易被从这些函数中引用。
以下代码有效,例如:
function print_it() {
global $my_global;
echo $my_global;
}
function set_it() {
global $my_global;
$my_global = 17;
}
set_it();
print_it(); // echos 17