取消设置 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]
。
我在 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]
。