php中怎么定义一个全局变量_php怎样定义全局变量?
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怎样定义全局变量?相关推荐
- php 批量初始化数组,php中如何初始化一个数组_php
初始化一个数组一般有2种方法:一个是单独给数组中的元素赋值:还有一种是把所有的元素一起初始化. 下面简要介绍初始化数组的2种方法: 第一种方法: $a["color"]=" ...
- java中不允许一个方法在自身定义的内部调用自己_Java面向对象三大特性(基础篇)...
面向对象简称 OO(Object Oriented),20 世纪 80 年代以后,有了面向对象分析(OOA). 面向对象设计(OOD).面向对象程序设计(OOP)等新的系统开发方式模型的研究. 对语言 ...
- java定义一个盒子类box_定义一个Box(盒子)类,在该类定义中包括数据成员: length(长),width(宽)和height(...
定义一个Box(盒子)类,在该类定义中包括数据成员: length(长),width(宽)和height( 定义一个Box(盒子)类,在该类定义中包括数据成员: length(长),width(宽)和 ...
- 在python中怎么定义一个范围_如何定义范围
展开全部 范围定义62616964757a686964616fe4b893e5b19e31333363386662 范围定义(Scope Definition) 目录 [隐藏] 1 什么是范围定义 2 ...
- java定义一个盒子类box_C++定义一个Box(盒子)类 看完你就知道了
包括以下内容 1.私有成员(length,width,height); 2.构造函数:可设置length,width,height的初值: 3.成员函数volumn:计算并输出盒子的体积: 4:成员函 ...
- python定义一个求和函数_Python定义函数实现累计求和操作
一.使用三种方法实现0-n累加求和 定义函数分别使用while循环.for循环.递归函数实现对0-n的累加求和 1.使用while循环 定义一个累加求和函数sum1(n),函数代码如下: 2.使用 f ...
- java定义一个类_java如何定义一个类,创建它的成员变量和方法?
展开全部 类即对象的思想,一个对象包含e69da5e887aa3231313335323631343130323136353331333337623439了属于自己的成员变量和操作方法. 如何定义一个 ...
- php 怎么定义一个空对象,php定义空对象的方法
本文主要和大家分享php定义空对象的方法,有时候我们直接对不存在的数组直接定义其下标的值,不会报错,但是我们定义不存在的对象的时候,就会报错,这个时候我们定义一个空对象即可.有以下三种方法:<? ...
- 【python】定义一个人类Person: 定义一个方法say_hello(),可以向对方发出问候语“hello,my name is XXX” 有三个属性:名字、身高、体重
#定义一个人类Person: # a. 定义一个方法say_hello(),可以向对方发出问候语"hello,my name is XXX" # b. 有三个属性:名字.身高.体重 ...
最新文章
- SpringBatch学习一个Demo项目
- Intellij IDEA 中无法下载 Cloud Toolkit 问题解决
- 递归算法转换为非递归算法的技巧
- pixhawk原生固件笔记
- Android多线程之同步锁的使用
- PHP中 对象自动调用的方法:__set()、__get()、__tostring()
- 招银网络笔试java_最新!!招银网络科技Java面经,整理附答案
- vivado中bit文件怎么没有生成_「超实用」一分钟学会用最小存储空间保存Vivado工程...
- ubuntu ftp服务器_如何在Ubuntu上安装FTP服务器?
- 字符数组中查找字符串或字符数组
- Java 多态性理解
- conda环境下更新pip失败
- acdsee怎么改图片大小|acdsee怎么用
- JavaWeb-JSON
- 牛客刷题系列(C++)——详解MGJ8 链表合并(目前内存开销最小)
- mysql v8 漏洞_海洋CMS V8.7 SQL注入漏洞
- 重磅:阿里开启大规模校招,传已启动保密项目
- php随机生成昵称,使用PHP批量生成随机用户名
- 互联网上下50年,万字长文推演Web1.0到Web5.0
- 腾讯实时音视频SDK[一]:业务和场景