在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
一、超全局变量$GLOBALS PHP超全局变量有很多,如下的都属于超全局变量(Superglobal): $GLOBALS,$_SERVER,$_GET,$_POST,$_FILES,$_COOKIE,$_SESSION,$_REQUEST,$_ENV。 官方说明:
$foo = "Example content"; test(); function test() { $foo = "local variable"; echo '$foo in current scope: ' . $foo . "<br>"; echo '$foo in global scope: ' . $GLOBALS["foo"] . "<br>"; } 如上的例子,要访问外部的$foo必须使用 $GLOBALS数组。对于通过include文件进来的外部全局变量也适用。 php中global也有这样的功能,它和$GLOBALS的区别在于:
对于类中的成员变量,类中函数必须使用$this->的方式访问,不能用$GLOBALS方式: global的作用是定义全局变量,但是这个全局变量不是应用于整个网站,而是应用于当前页面,包括include或require的所有文件。
function t1() { global $var1, $var2; $var2 = &$var1; } function t2() { $GLOBALS['var3'] = &$GLOBALS['var1']; } $var1 = 5; $var2 = $var3 = 0; t1(); print $var2 ."\n"; t2(); print $var3 ."\n"; 执行结果为: function t1() { global $var1; $var1 = 2; unset($var1); } function t2() { $GLOBALS['var1'] = 3; unset($GLOBALS['var1']); } $var1 = 1; t1(); print $var1 . "\n"; t2(); print $var1 . "\n"; 执行结果只输入一个2; function test_global() { global $var1; $var1 = 'ok'; unset($var1); } test_global(); $var2 = &$var1; unset($var1); echo $var2; 先不给出结果,自己运行一下程序。函数内部的变量可以访问到了。从结果可以看出,unset只是断开变量名与变量值连接,并没有马上销毁变量的值,而且在函数内部定义的全局变量,实际在外部只是使用了函数内部的别名而已,所以我们在外面依然可以访问$var1。 $waibu = 'out'; function ff() { echo $GLOBALS['waibu']; } ff(); 直接在函数内部使用$waibu是会出错的。
转载:http://www.phptd.com/?action-viewnews-itemid-6147 |
2022-08-17
2022-11-06
2022-08-15
2022-08-18
2022-08-16
请发表评论