PHP中global与$GLOBALS['']的区别?

PHP中global与$GLOBALS['']的区?别谢谢!

阅读 3.8k
4 个回答
global $var     :  指函数外部同名变量的引用

$GLOBALS['var'] :  指函数外部变量本身




$a = 100;

function one(){

    global $a;

    unset($a);
}

one();
echo $a;

// 输出 100



/*******************************/



$a = 100;

function two(){

    unset($GLOBALS['a']);
}

two();
echo $a;

// 输出 Notice: Undefined variable: a

PHP释放全局变量注意事项:
global $var; 等价于 $var = &$GLOBALS['var'];
在函数内释放一个全局变量,应该这样:
unset($GLOBALS['var']);
而不能这样:
global $var; unset($var);

<?php
$var = 'abc';
$tmp = &$var;
unset($tmp); //当你unset一个引用,只是断开了变量名和变量内容之间的绑定,这并不意味着变量内容被销毁了.
echo $var; //输出abc
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题