引用PHP手册的$GLOBALS的解释:
Global 变量:$GLOBALS
注意: $GLOBALS 在 PHP 3.0.0 及以后版本中适用.
由所有已定义全局变量组成的数组.变量名就是该数组的索引.
这是一个“superglobal”,或者可以描述为自动全局变量. 也就是说上面代码中的$var1和$GLOBALS['var1']是指的同一变量,而不是2个不同的变量!
全局变量举例,实例代码如下:
- $pangbu = "pangbu";
- function demo (){
- global $pangbu;
- echo $pangbu;
- }
- demo();
- ?>
解释:其实global $pangbu ;是$pangbu = &$_GLOBAL['pangbu ']的简写,意思是$pangbu 是$_GLOBAL['pangbu ']的一个引用,至于引用怎么用,$pangbu 就怎么用了.自己的一些笔记之前一直没有搞明白 global 的用法 ,虽然会用但却一直在朦朦胧胧中糊里糊涂的,现在终于搞明白了.为了了解更多Global的应用,请看下面php案例:
实例代码如下:
- $url = "www.phpfensi.com";
- function get_url(){
- echo "The blog is".$url; //这里获取不到$url,因为它只是一个未定义的局部变量
- }
- get_url();
- ?>
上面的例子会报notice错误!实例代码如下:
- $url = "www.phpfensi.com";
- function get_url(){
- global $url;
- echo "The blog url is ".$url;
- }
- get_url();
- ?>
上面这样用法就是对的,在函数中声明全局变量后,任何变量的所有引用变量都会指向到全局变量!另外有必要说一下,全局数组$GLOBALS[],用上面的例子改写下就是这样:
实例代码如下:
- $url = "www.phpfensi.com";
- function get_url(){
- echo "The blog url is ".$GLOBALS['url'];
- }
- get_url();
- ?>
注意global声明变量不能复制,如 global $url = "www.phpfensi.com";这样是错误的。