各位大神中午好,我在网上看到了这么一个知识点:
函数内部声明的global变量可以被外部主程序访问
接着我运行了下面的代码,也验证了上面的结论:
<?php
function test_global() {
global $vars;
$vars='OK';
}
test_global();
echo $vars; //OK
?>
依据上面的理论,我又写了如下的代码:
<?php
$var1 = 1;
function test(){
global $var1;
unset($GLOBALS['var1']);
echo $var1;
}
test();
echo $var1;
?>
test函数内的global $var1是外部变量$var1的引用,unset($GLOBALS['var1']);使外部$var1断开与内存的关联(销毁了变量$var1)
那么问题来了
依照问题开头的理论,即使外部的$var1被unset了,但是函数外部依然可以访问到函数内部的$var1啊?(函数内的$var1也是global的啊!),但是为什么最后echo $var1会报错呢?
还请大神赐教,谢谢了!
另外我还有一个问题,希望大神可以帮我看看
https://segmentfault.com/q/10...
可以这么理解:
global $var1;
等于$var1=&$GLOBALS['var1'];
可以对比上下两段运行结果
我也来补充一段吧