Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Variables 在PHP7中取消设置所有变量_Variables_Php 7_Unset - Fatal编程技术网

Variables 在PHP7中取消设置所有变量

Variables 在PHP7中取消设置所有变量,variables,php-7,unset,Variables,Php 7,Unset,我在PHP5.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); 我的问题是如何使脚本在PHP7中工作 谢谢你的建议 您可以使用foreach而不是for来避免这些错误 $vars = array_keys(

我在PHP5.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);
我的问题是如何使脚本在PHP7中工作


谢谢你的建议

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

$vars = array_keys(get_defined_vars());
foreach ($vars as $var) {
    unset($$var);
}
unset($vars, $var);
$$vars[$i]
的求值顺序为。它现在严格地从左到右

以前,它会首先计算
$vars[$i]
,然后根据
$
的结果形成一个新变量


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

您的代码正常工作。谢谢你的解释,这对我很有用,因为我刚刚升级了服务器,对此一无所知。我已经更新了问题中的php版本。
$vars = array_keys(get_defined_vars());
foreach ($vars as $var) {
    unset($$var);
}
unset($vars, $var);