PHP中通过global和$GLOBALS来使用全局变量
php吧
全部回复
仅看楼主
level 3
鱼勇士 楼主
PHP的全局变量和C语言中有点不同,C语言中全局变量可以在函数内部直接使用,PHP不能直接使用,需要用特殊的方式来使用全局变量。
PHP在函数中使用全局变量有两种方式:global和$GLOBALS数组。
global——在函数内部产生一个外部变量的引用,可以通过该引用来使用外部变量的值,也可以通过该引用修改外部变量的值,但是并不能通过引用清除外部变量。下面来看例子。
执行结果如下:
可以看出外部变量在函数内部是不能直接使用的,我们在函数内部加入global声明如下:
执行结果如下:
此时已经可以在函数内部使用变量$global了,我们继续修改代码如下:
再次执行结果如下:
通过该次执行结果可以看出通过函数内部的引用可以修改外部变量的值(由5修改为3),虽然函数内部使用了unset($global),但是并不能清除外部变量,在函数外面$global变量依然是存在的。
$GLOBALS数组
在函数外部定义的变量都会存在于$GLOBALS数组中,变量的名字作为$GLOBALS数组的键。
在函数内部也可以通过$GLOBALS数组的方式来访问外部变量,与global不同的是通过$GLOBALS数组的方式访问外部变量不是引用,而是真实访问外部变量,所以可以通过$GLOBALS数组的方式来访问、修改和清除外部变量。我们对上面的例子稍作修改如下:
执行结果如下:
这里可以看出可以通过$GLOBALS数组的方式来访问、修改和清除外部变量。
注意:PHP中全局变量不是应用于整个网站,而是应用于当前页面,包括require和include的所有文件。
本文转自微信公众平台:PHP技术宅
2016年04月19日 11点04分 1
1