我知道最好使用按引用传递而不是这样做,但我想知道为什么这段代码(代码 1)可以正常工作,而另一个(代码 2)却不能?
代码1:
<?php
$var = 5;
function unset_var() {
unset($GLOBALS['var']);
}
unset_var();
echo $var; //Notice: Undefined variable: var
?>
代码2:
<?php
$var = 5;
function unset_var() {
global $var;
unset($var); // trying to unset $var
}
unset_var();
echo $var; // 5
?>
最佳答案
您的第二个代码有一个创建新变量的函数,并且您要取消设置该变量,而不是函数外部的变量。您的第一个代码仅操作 $GLOBALS 数组。
此外,您甚至应该首先避免考虑全局变量......
关于php - php 中的 global 与 $GLOBALS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35929668/