php global用法/php global 变量/$globals php

最近在研究PHP,期间遇到了global和$GBLOBALS,网上找到的一些资料大多相同,连例子都一样,学习完后,还是一头雾水。后来,结合网上材料及自己多方实践,总结出它的用法。

PHP中的关键字global用于声明或引用全局变量,可以用于函数中,也可以用于函数外(函数外使用没有语法错误,但由于函数外声明的变量都是全局的,实际没有意义,所在函数外是不用的)。在函数外声明的变量,要在函数中使用,就需要用global关键字来声明引入才能使用。如下面代码t函数中global $x,$y,$z,$d,$e的$x、$y就是在函数中引入的全局变量,之后函数内的表达式$z=$x+$y才能使用。而,$z,$d,$e这三个变量,由于在函数外没有声明,所以就是创建或声明的全局变量,既然是全局变量,它在函数之外或其它函数中也可以使用。函数之外可以直接使用,在另一个函数使用的话,也需要用global来引入,s函数中就引入了t函数声明的全局变量$d和$e。

$x=3;

$y=5;

function t(){

global $x,$y,$z,$d,$e;//引入$x、$y全局变量、声明$z,$d,$e全局变量

$d=5;

$e=7;

$z=$x+$y;

}

function s(){

global $m,$n,$d,$e;//引入函数t中声明的$d,$e变量,声明$m,$n变量

$m=$e-$d;

$n=$GLOBALS['y']-$GLOBALS['x'];//$GLOBALS用法

echo "
";

echo "全局变量\$n等于$n";

}

t();

echo "全局变量\$z等于$z";//函数之外输出全局变量

s();

echo "
";

echo "全局变量\$m等于$m";//输出函数内声明的全局变量

?>

下面再来说一下$GLOBALS,PHP函数中声明的全局变量默认情况下都会在数组$GLOBALS生成一个元素,该元素下标是变量名。函数外使用$GLOBALS没有什么意义,函数内想直接使用全局变量则可以用$GLOBALS['变量名'],这里需要注意的是$GLOBALS中的$符号不能少,并且GLOBALS必须是大写。

php globals的用法,php global用法/php global 变量/$globals php相关推荐

  1. Python语言学习之字母G开头函数使用集锦:global用法之详细攻略

    Python语言学习之字母G开头函数使用集锦:global用法之详细攻略 global全局变量用法 global全局变量:python使用的变量默认一定是用局部变量:如果想使用作用域之外的全局变量,则 ...

  2. global在python中啥意思_Python中global用法详解

    1. 文档说明 在python3.3.2的官方api帮助文档上看到, 如下一段话: The global statement is a declaration which holds for the ...

  3. (COPY)document.all和document.getElementById用法 document.all用法:

    (COPY)document.all和document.getElementById用法 document.all用法: <html>     <body>       < ...

  4. JObject 用法 、JProperty 用法、JArray 用法 Linq 转 Json

    转: JObject 用法 .JProperty 用法.JArray 用法 Linq 转 Json 1.使用LINQ to JSON前,需要引用Newtonsoft.Json的dll和using Ne ...

  5. C语言task的用法,C# Task 用法

    C# Task 的用法 其实Task跟线程池ThreadPool的功能类似,不过写起来更为简单,直观.代码更简洁了,使用Task来进行操作.可以跟线程一样可以轻松的对执行的方法进行控制. 顺便提一下, ...

  6. mysql日期函数之DATEDIFF() if()用法 case when用法

    mysql日期函数之DATEDIFF() if()用法 case when用法 背景: 用户密码七天后会过期,用户修改密码时会同步添加修改时间进数据库, 登录时校验用户是否需要修改密码, 一开始想的时 ...

  7. c语言(vd6.0) sleep函数用法 及delay用法

    c语言(vd6.0) sleep函数用法 及delay用法 悬赏分:20 | 解决时间:2009-5-20 20:56 | 提问者:杨筱硕 请注明头文件 2个函数都要举例 最佳答案 1.函数名: de ...

  8. C++基础用法—冒号的用法

    C++基础用法-冒号的用法 一.用法一:继承 1.1用法:用在class或struct后面 1.2示例代码 二.用法二:赋值 1.1用法:用在成员函数.构造函数后面 1.2示例代码 1.2.1示例代码 ...

  9. guess在Java中用法_guess的用法

    guess有推测;猜中;以为等意思,那么你知道guess的用法吗?下面跟着学习啦小编一起来学习关于guess的用法及相关知识吧,希望对大家的学习有所帮助! guess的用法 guess的用法1:gue ...

最新文章

  1. 阿里云服务centOS7下安装rabbitmq
  2. Jzoj5235 好的排列
  3. linux服务器内存、根目录使用率、某进程的监控告警脚本
  4. 错误:子进程 已安装 pre-removal 脚本 返回了错误号 1
  5. 文字识别:关键信息提取的3种探索方法
  6. Android “Theme.AppCompat.Light”解决方法
  7. VR线下体验店群雄并起,超级队长为何能靠IP突围?
  8. arduino两轮平衡车(二)-- 原理讲解
  9. 修复steam服务器失败怎么办,steam服务器失败
  10. 历代iPhone主要参数对比,更新于2022年03月
  11. 平衡二叉树(注意LR和RL)
  12. 次世代游戏建模制作工作流程 1
  13. 【IntelliJ IDEA】如何汉化成简体中文
  14. Eclipse开发工具--简介
  15. 我所关注,推荐的公众号---软件那些事儿
  16. 从为何“万事开头难”谈大型网站应用设计——运用冥想
  17. 网站-微博历史热搜查询
  18. 深度学习——回归问题
  19. Linux 下面FireFox 看CCTV直播
  20. 为什么没有下划线_资料1907:xumin字体打不出下划线?凌哥英语送您改进版!

热门文章

  1. 39 直接引语变间接引语(宾语从句)
  2. JSAPI 高德地图应用--车辆的轨迹回放、并附有信息框(上)
  3. 如何使用PowerDesigner软件进行数据库设计(多对多关系)
  4. Windows server 2012 R2创建域用户和设置
  5. 数据库字段设置默认值
  6. win10屏幕快照快捷键_如何在Windows 8和10中更改默认屏幕快照文件夹的位置
  7. python 实现在excel表格中插入查找缺失的日期序列
  8. java大魔王,Java编码规范 - 春哥大魔王的博客的个人空间 - OSCHINA - 中文开源技术交流社区...
  9. 为什么用Nginx处理静态资源
  10. BigInt类型数值