转储除全局变量之外的所有变量

时间:2014-02-28 14:38:24

标签: php variables global-variables

我想转储在本地范围内定义的所有变量。我检查了get_defined_vars()但它还包括全局范围内的变量。

是否有一些内置的PHP函数允许您在本地范围内转储变量?

3 个答案:

答案 0 :(得分:4)

get_defined_vars在调用范围内工作。如果在全局范围内调用它,它将获取该范围内的每个变量。在函数内调用它将获得该函数范围内的所有变量。

这一切都是相对的,所以根据你所说的你会得到不同的结果。如果只需要局部变量,则在本地范围内调用该函数。如果要获取全局变量,则在全局非本地范围内调用该函数。

答案 1 :(得分:1)

正如其他人所提到的,get_defined_vars()将返回调用范围内的所有变量。一种选择是根据约定过滤它返回的内容:

$arr = get_defined_vars();
foreach ($arr as $key => $value) {
    if (preg_match('/_[A-Z]+/', $key)) unset($arr[$key]);
}
print_r($arr);

答案 2 :(得分:0)

get_defined_vars()返回在调用它的范围内可见的变量 -