Global是php中一个比较特殊的命令,大家直接叫他超级全局变量了,下面我来介绍我今天在使用Global定义全局学习笔记了

很不习惯PHP中的变量作用域,PHP中函数变量和全局是完全隔绝的,也就是无法相互访问。

比如下面这样:

代码如下:$test = 123;

abc(); //这里什么都不输出,因为访问不到$test变量

function abc(){

echo($test);

}$test = 123;

abc(); //这里什么都不输出,因为访问不到$test变量

function abc(){

echo($test);

}

如果,你想在函数内部访问外部变量,你需要这样:

代码如下:$test = 123;

abc(); //输出123

function abc(){

global $test;

echo($test);

}$test = 123;

abc(); //输出123

function abc(){

global $test;

echo($test);

}

但如果我们在函数中定义全局变量呢,像下面这样:

代码如下:function abc(){

global $test;

$test = 123;

}

abc();

echo($test); //输出123function abc(){

global $test;

$test = 123;

}

abc();

echo($test);

//输出123

通过这种方式,我们可以在外部访问到函数内部定义的变量

在用户自定义函数中,一个局部函数范围将被引入。任何用于函数内部的变量按缺省情况将被限制在局部函数范围内(包括include 和 require 导入的文件内的变量)!

解释:A.php文件的内Test_Global是定义好的第三方函数,该函数用include导入了B.php文件内的$a的global全局变量,所以$a被限制在Test_Global局部函数范围内,所以B.php文件内的$a的作用范围都在Test_Global内,而不是作用了整个A.php内….

解决方案:

1. 冲出局部函数

//A.php 文件

代码如下:<?php

function Test_Global()

{

Test();

}

include 'B.php'; //将include 从局部Test_Global函数中移出

$a = 0 ;

Test_Global();

echo $a;

?>

//B.php 文件

function Test()

{

global $a;

$a =1;

}

?>

2.优秀的访问器

代码如下:

//A.php 文件<?php

include 'B.php';

$a =0;

Set_Global($a);

echo $a;

?>

//B.php 文件

function Set_Global(&$var)

{

$var=1;

}

?>

php中怎么定义一个全局变量_php怎样定义全局变量?相关推荐

  1. php 批量初始化数组,php中如何初始化一个数组_php

    初始化一个数组一般有2种方法:一个是单独给数组中的元素赋值:还有一种是把所有的元素一起初始化. 下面简要介绍初始化数组的2种方法: 第一种方法: $a["color"]=" ...

  2. java中不允许一个方法在自身定义的内部调用自己_Java面向对象三大特性(基础篇)...

    面向对象简称 OO(Object Oriented),20 世纪 80 年代以后,有了面向对象分析(OOA). 面向对象设计(OOD).面向对象程序设计(OOP)等新的系统开发方式模型的研究. 对语言 ...

  3. java定义一个盒子类box_定义一个Box(盒子)类,在该类定义中包括数据成员: length(长),width(宽)和height(...

    定义一个Box(盒子)类,在该类定义中包括数据成员: length(长),width(宽)和height( 定义一个Box(盒子)类,在该类定义中包括数据成员: length(长),width(宽)和 ...

  4. 在python中怎么定义一个范围_如何定义范围

    展开全部 范围定义62616964757a686964616fe4b893e5b19e31333363386662 范围定义(Scope Definition) 目录 [隐藏] 1 什么是范围定义 2 ...

  5. java定义一个盒子类box_C++定义一个Box(盒子)类 看完你就知道了

    包括以下内容 1.私有成员(length,width,height); 2.构造函数:可设置length,width,height的初值: 3.成员函数volumn:计算并输出盒子的体积: 4:成员函 ...

  6. python定义一个求和函数_Python定义函数实现累计求和操作

    一.使用三种方法实现0-n累加求和 定义函数分别使用while循环.for循环.递归函数实现对0-n的累加求和 1.使用while循环 定义一个累加求和函数sum1(n),函数代码如下: 2.使用 f ...

  7. java定义一个类_java如何定义一个类,创建它的成员变量和方法?

    展开全部 类即对象的思想,一个对象包含e69da5e887aa3231313335323631343130323136353331333337623439了属于自己的成员变量和操作方法. 如何定义一个 ...

  8. php 怎么定义一个空对象,php定义空对象的方法

    本文主要和大家分享php定义空对象的方法,有时候我们直接对不存在的数组直接定义其下标的值,不会报错,但是我们定义不存在的对象的时候,就会报错,这个时候我们定义一个空对象即可.有以下三种方法:<? ...

  9. 【python】定义一个人类Person: 定义一个方法say_hello(),可以向对方发出问候语“hello,my name is XXX” 有三个属性:名字、身高、体重

    #定义一个人类Person: # a. 定义一个方法say_hello(),可以向对方发出问候语"hello,my name is XXX" # b. 有三个属性:名字.身高.体重 ...

最新文章

  1. SpringBatch学习一个Demo项目
  2. Intellij IDEA 中无法下载 Cloud Toolkit 问题解决
  3. 递归算法转换为非递归算法的技巧
  4. pixhawk原生固件笔记
  5. Android多线程之同步锁的使用
  6. PHP中 对象自动调用的方法:__set()、__get()、__tostring()
  7. 招银网络笔试java_最新!!招银网络科技Java面经,整理附答案
  8. vivado中bit文件怎么没有生成_「超实用」一分钟学会用最小存储空间保存Vivado工程...
  9. ubuntu ftp服务器_如何在Ubuntu上安装FTP服务器?
  10. 字符数组中查找字符串或字符数组
  11. Java 多态性理解
  12. conda环境下更新pip失败
  13. acdsee怎么改图片大小|acdsee怎么用
  14. JavaWeb-JSON
  15. 牛客刷题系列(C++)——详解MGJ8 链表合并(目前内存开销最小)
  16. mysql v8 漏洞_海洋CMS V8.7 SQL注入漏洞
  17. 重磅:阿里开启大规模校招,传已启动保密项目
  18. php随机生成昵称,使用PHP批量生成随机用户名
  19. 互联网上下50年,万字长文推演Web1.0到Web5.0
  20. 腾讯实时音视频SDK[一]:业务和场景

热门文章

  1. windows自定义文件夹样式
  2. 写java开头结尾,在Java中向InputStream的开头和结尾添加字符
  3. 华为OpenEuler体验系列(01)--制作BIOS、UEFI双启动盘
  4. DNF怎么凑异界装备(远古2)最快?
  5. js小练习--模拟满天星
  6. UI自动化测试+selenium环境安装配置
  7. 传智播客设计学院主页学习案例——HTML,CSS,JS代码学习案例
  8. IDEA恢复被覆盖的代码
  9. liunx概述+常用liunx操作命令手册
  10. matlab程序4名商人,商人们怎样安全过河附MATLAB程序完整.doc