为什么全局和$ GLOBALS之间的未设置功能不同?

时间:2017-05-08 16:22:03

标签: php reference global-variables

问题

为什么全局和$ GLOBALS之间的未设置功能不同?

这是我的代码, imgDisplay.image = NSData["Image"][index] 版本不会回显任何内容,但alertController.addTextField { (textField) in textField.text = "Hello" textField.isSecureTextEntry = true } 将回显" hi"。

$GLOBALS

以上代码无回应

但是当我将global更改为//$GLOBALS version <?php function foo() { unset($GLOBALS['bar']); } $bar ="hi"; foo(); echo $bar; ?> 时,它会回显&#34; hi&#34;

$GLOBALS['bar']

我在谷歌和PHP手册中搜索,但似乎没有关于这个问题的详细信息。 what is the difference between GLOBALS and GLOBAL?

1 个答案:

答案 0 :(得分:1)

使用global语句在函数作用域内导入的真实全局变量实际上会创建对全局变量的引用。使用unset()时,它会取消引用全局变量的变量,与其他引用相同。取消设置引用时,只需断开变量名和变量内容之间的绑定即可。这并不意味着可变内容将被销毁。例如:

$a = 1;
//assign a reference to $a
$b =& $a;
unset($b);
var_dump($a);

收益率:int(1)请参阅https://jira.testing.com/rest/api/2/component/595

当您访问$GLOBALS时,您正在访问Unsetting References数组并取消设置数组中包含的实际变量。