取消设置 PHP 中的所有变量 7

Unset all variables in PHP 7

我在 PHP 5.5.9 中使用以下脚本来取消设置所有变量,效果很好

$vars = array_keys(get_defined_vars());
for ($i = 0; $i < sizeOf($vars); $i++) {
    unset($$vars[$i]);  //this is line 72
}
unset($vars,$i);

然而,在 PHP 7 中,他们给出了以下消息:

PHP Notice:  Array to string conversion in /root/script.php on line 72
PHP Notice:  Undefined variable: Array in /root/script.php on line 72

我的问题是如何使脚本在 PHP 7 中运行?

感谢任何建议!

您可以使用 foreach 而不是 for 来避免这些错误。

$vars = array_keys(get_defined_vars());
foreach ($vars as $var) {
    unset($$var);
}
unset($vars, $var);

$$vars[$i] 的求值顺序是 different in PHP 7。现在严格从左到右。

以前它会首先评估 $vars[$i] 然后根据 $.

的结果形成一个新变量

现在它首先计算 $$vars,然后尝试在计算结果中找到 [$i]