php语法中,很多人都认为global和$GLOBALS[]只是写法上面的差别,其实不然

根据官方的解释是

1.$GLOBALS['var']是外部的全局变量本身

2.global $var是外部$var的同名引用或者指针。

举例说明一下:

$var1 = 1;

$var2 = 2;

function test(){

$GLOBALS['var2'] = &$GLOBALS['var1'];

}

test();

echo $var2;

?>

正常打印结果为1

$var1 = 1;

$var2 = 2;

function test(){

global $var1,$var2;

$var2 = &$var1;

}

test();

echo $var2;

?>

意外打印结果为2

为什么会打印结果为2呢?其实就是因为$var1的引用指向了$var2的引用地址。导致实质的值没有改变。

我们再来看一个例子吧。

$var1 = 1;

function test(){

unset($GLOBALS['var1']);

}

test();

echo $var1;

?>

因为$var1被删除了,所以什么东西都没有打印

$var1 = 1;

function test(){

global $var1;

unset($var1);

}

test();

echo $var1;

?>

意外的打印了1。证明删除的只是别名|引用,起本身的值没有受到任何的改变

明白了吧?

也就是说global $var其实就是$var = &$GLOBALS['var']。调用外部变量的一个别名而已

php中global什么意思,php中global和$GLOBALS[]的用法、解释、区别相关推荐

  1. jQuery中bind,live,delegate与one方法的用法及区别

    bind( )方法用于将一个处理程序附加到每个匹配元素的事件上并返回jQuery对象. .bind(eventType[, evnetData], Handler(eventObject)) 其中,参 ...

  2. jquery中的find()和next()的用法及区别

    在讲解这两个方法的时候,咱们先弄懂一个概念,什么叫做后代,什么叫做同级 咱们先用一个图片来说一下. 注:该图片取自菜鸟驿站. <div> 元素是 <ul> 的父元素,同时是其中 ...

  3. 在Global Object Services (GOS) 中加入自定义项目

    在我之前的日志里面,我们已经讨论了如何将自定义的业务凭证集成到SAP标准的凭证流浏览器中,参考链接(如何在SAP的的凭证流浏览器(DRB)中加入客户自定义的凭证)这次我们将继续这一话题,并且讨论一下如 ...

  4. php中global什么意思,php中global与$GLOBAL的用法及区别(转载)

    php中global 与 $GLOBALS[""] 差别 原本觉得global和$GLOBALS除了写法不一样觉得,其他都一样,可是在实际利用中发现2者的差别还是很大的! 先看下面 ...

  5. python中global什么意思_python中的global关键字的使用方法

    摘要 global 标志实际上是为了提示 python 解释器,表明被其修饰的变量是全局变量.这样解释器就可以从当前空间 (current scope) 中读写相应变量了. Python 的全局变量是 ...

  6. php $globals的用法,php 中global关键字和$GLOBALS用法

    首先我们先看一段代码<?php $a = 1 ; /* global scope */ function Test () { echo $a ; /* reference to local sc ...

  7. js中match、replace方法中使用正则表达式

    为什么80%的码农都做不了架构师?>>>    js中match.replace方法中使用正则表达式 (2012-06-29 14:23:37) 转载▼ 标签: 字符串 飞雪 正则表 ...

  8. TF:tensorflow框架中常用函数介绍—tf.Variable()和tf.get_variable()用法及其区别

    TF:tensorflow框架中常用函数介绍-tf.Variable()和tf.get_variable()用法及其区别 目录 tensorflow框架 tensorflow.Variable()函数 ...

  9. python中赋值语句的作用_python中return可以使用赋值语句吗?

    在python中,有各种不同类型的语句.一个python程序是由模块构成的;一个模块由一条或多条语句组成;每个语句由不同的表达式组成;表达式可以创建和操作对象.下面来看看python中的语句. 赋值语 ...

最新文章

  1. 看着拆焊过程,很治愈
  2. LeetCode 7 整数反转
  3. 开启云原生 MOSN 新篇章 — 融合 Envoy 和 Golang 生态
  4. Abp vNext异常处理的缺陷/改造方案
  5. js实现冒泡排序,快速排序,选择排序
  6. MTK 驱动(71)---DDR进行bitflip压力测试
  7. Java基础学习总结(36)——Java注释模板
  8. java基础面试题总结
  9. UVA1594 UVALive4723 Ducci Sequence【vector+set】
  10. 学JS的心路历程 - JS应用
  11. 火狐浏览器安装java插件下载_如何在 Firefox 浏览器安装 java 插件
  12. linux 水印软件下载,水印美图滤镜相机
  13. 基于Python编写的倒计时工具
  14. scheme语言编写运行
  15. JavaScript高级程序设计[美]Nicholas C.Zakas著 读书笔记(三)
  16. 松灵学院 | Scout mini 仿真指南
  17. 计算机毕业设计SSM大学生志愿者管理系统【附源码数据库】
  18. 2019 siggraph_观看SIGGRAPH 2019的Unity图形会议
  19. 2011互联网大会23日在京举行 微博带您对话CEO
  20. 过敏性鼻炎是怎么引起的?

热门文章

  1. css中background的使用总结
  2. 使用Java制作验证码
  3. 3-7 DNA序列(DNA Consensus String, ACM/ICPC Seoul 2006, UVa1368)
  4. centos7 install virt-sysprep
  5. Oracle单组函数
  6. 【性能优化】PHP代码输出压缩后HTML
  7. 电商刮刮卡开发基础准备
  8. huffman编码——原理与实现
  9. QTP学习笔记----2013.04.25
  10. LINQ-to-SQL那点事~耳目一新的partial class 和 partial method