首先我们先看一段代码<?php

$a = 1 ; /* global scope */

function Test ()

{

echo $a ; /* reference to local scope variable */

}

Test ();

?>

这个脚本不会有任何输出,因为 echo 语句引用了一个局部版本的变量 $a ,而且在这个范围内,它并没有被赋值。你可能注意到 PHP 的全局变量和 C 语言有一点点不同,在 C 语言中,全局变量在函数中自动生效,除非被局部变量覆盖。这可能引起一些问题,有些人可能不小心就改变了一个全局变量。php 中全局变量在函数中使用时必须声明为 global。

global 关键字

首先,一个使用 global 的例子,代码如下:<?php

$a = 1 ;

$b = 2 ;

function Sum ()

{

global $a , $b ;

$b = $a + $b ;

}

Sum ();

echo $b ;

?>

以上脚本的输出将是“3”。在函数中声明了全局变量 $a 和 $b 之后,对任一变量的所有引用都会指向其全局版本。对于一个函数能够声明的全局变量的最大个数,PHP 没有限制。

在全局范围内访问变量的第二个办法,是用特殊的 PHP 自定义 $GLOBALS 数组。前面的例子可以写成:

Example #2 使用 $GLOBALS 替代 global,代码如下:<?php

$a = 1 ;

$b = 2 ;

function Sum ()

{

$GLOBALS [ 'b' ] = $GLOBALS [ 'a' ] + $GLOBALS [ 'b' ];

}

Sum ();

echo $b ;

?>

$GLOBALS 是一个关联数组,每一个变量为一个元素,键名对应变量名,值对应变量的内容。 $GLOBALS 之所以在全局范围内存在,是因为 $GLOBALS 是一个超全局变量。以下范例显示了超全局变量的用处:

Example #3 演示超全局变量和作用域的例子<?php

function test_global ()

{

// 大多数的预定义变量并不 "super",它们需要用 'global' 关键字来使它们在函数的本地区域中有效。

global $HTTP_POST_VARS ;

echo $HTTP_POST_VARS [ 'name' ];

// Superglobals 在任何范围内都有效,它们并不需要 'global' 声明。Superglobals 是在 PHP 4.1.0 引入的。

echo $_POST [ 'name' ];

}

?>

php $globals的用法,php 中global关键字和$GLOBALS用法相关推荐

  1. pythonelse用法_Python中else关键字的常见用法

    Python中的else常见用法有三:选择结构.循环结构和异常处理结构. (1)选择结构 这应该是最常见的用法,与关键字if和elif组合来使用,用来说明条件不符合时应执行的代码块. (2)循环结构 ...

  2. python中global和def_Python中 Global和Nonlocal的用法详解

    nonlocal 和 global 也很容易混淆.简单记录下自己的理解. 解释 global 总之一句话,作用域是全局的,就是会修改这个变量对应地址的值. global 语句是一个声明,它适用于整个当 ...

  3. php static 和 global,php中global static和$GLOBALS使用与区别

    本文章来总结介绍关于php中global static和$GLOBALS使用与区别有需要了解他们三区别的朋友可参考参考. 1.global在整个页面起作用. 例1  代码如下 复制代码 global ...

  4. C语言中的关键字“ volatile”的用法(摘)

    C语言中的关键字" volatile"的用法(摘) volatile 这个ANSI C 关键字在经典的C 教程中很少提及,高层编程的人也可能永远都 不会用到,但是作为嵌入式开发者来 ...

  5. python中readlines函数用法,python中read() readline()以及readlines()用法

    我们谈到"文本处理"时,我们通常是指处理的内容.Python 将文本文件的内容读入可以操作的字符串变量非常容易.文件对象提供了三个"读"方法: .read(). ...

  6. 、简述global关键字的作用_在C#编程中global关键字的作用及其用法

    在C#编程中,global 是 C# 2.0 中新增的关键字,理论上说,如果代码写得好的话,根本不需要用到它.今天就为大家展示下global关键字的作用及其用法,希望对大家学习C#编程有所帮助. 假设 ...

  7. 高级语言中的关键字:const用法分析

    const是constant的缩写,本意是"不变的.不易改变的",它属于c.c++.Java等高级语言中的关键字,通常用来修饰变量对象.函数参数.c或c++指针对象使用. cons ...

  8. java中if语句的用法_Java中的if判断语句用法介绍

    在实际生活中经常需要做出一些判断,比如开车来到一个十字路口,这时需要对红绿灯进行判断,如果前面是红灯,就停车等候,如果是绿灯,就通行.Java中有一种特殊的语句叫做选择语句,它也需要对一些条件做出判断 ...

  9. python中tile的用法_python3中numpy函数tile的用法详解

    tile函数位于python模块 numpy.lib.shape_base中,他的功能是重复某个数组.比如tile(A,n),功能是将数组A重复n次,构成一个新的数组,我们还是使用具体的例子来说明问题 ...

最新文章

  1. Spring MVC环境中的文件上传功能实现
  2. 爬虫五 Beautifulsoup模块详细
  3. 以太坊智能合约 Hexagon 存在溢出漏洞
  4. 吴恩达深度学习笔记4-Course1-Week4【深层神经网络】
  5. TCL座机日期时间调整
  6. 教你一招轻松入门python,不收藏等于错失了一个亿!
  7. 计算机组成原理补充实验,计算机组成原理实验补充实验指导-实.doc
  8. requests-处理不信任的ssl证书
  9. 【python】循环结构if、for 、while
  10. 课程作业01——从命令行接收多个数字,求和之后输出结果
  11. lua笔记1 基础概念
  12. gmssl编译linux,linux 编译安装GmSSL记录
  13. 超详解代理服务器的使用方法
  14. sql中常见sqlcode原因分析
  15. IT行业都有哪些职位,初学者(0基础,新人)该如何选择,才能够快速进入这个行业?...
  16. 2019年最新Java学习路线图
  17. php-fpm master 关系,php-fpm master worker 关系介绍
  18. android 停止服务方法,Android编程实现开始及停止service的方法
  19. 缘分,有时就在一刹那
  20. vue3项目实现防抖/截流

热门文章

  1. 从0-1搭建交付型项目管理体系流程-- 项目启动篇【宝芝林5】
  2. Pregel与图迭代
  3. 菜鸟演讲-----谁动了我的奶酪?
  4. 基于LinearLayout的小标签(TextView)自动换行(修改)
  5. 淘宝天猫成交记录评论采集方法分享
  6. docker推送镜像到dockerhub
  7. Linux Shell脚本编程--netstat命令
  8. 用了这么久线程池,你真的知道如何合理配置线程数吗?
  9. Zuul 2: Netflix的异步、无阻塞系统之旅
  10. 实名制物联网卡能否永久使用,如何注销