【php】global的使用与php的全局变量

php的全局变量和其余编程语言是不同的,在大多数的编程语言中,全局变量在其下的函数、类中自动生效,除非被局部变量覆盖,或者根本就不允许再声明相同名称与类型的局部变量,但是php中的全局变量不是默认生效的。php中全局变量在函数中使用时必须申明为全局,Global这个关键字在函数中定义才有用。也就是说Global的作用是定义全局变量,但是这个全局变量不是应用于整个网站,而是应用于当前页面,包括include或require的所有文件。

直接用一个例子来说明此问题,如下代码:

<?php
$a=5;
function test(){
	echo $a;
}
test();
?>

很简单,声明一个全局变量$a=5,然后声明一个函数test()打印这个全局变量,之后,调用这个test(),按照一般的编程语言的思维,此处的输出必然为5,然而,在实际执行却是如下的效果:

直接报错的了,说这个a没有定义,简直是无法理喻,但是php就是这样设置,可是我却是需要使用到$a作为全局变量,有可能下面还有很多函数、很多类要使用这个$a啊!这是,你需要每次使用全局变量$a之间,用global这个关键字声明一下。

如下代码则是正确示范:

<?php
$a=5;
function test(){
	global $a;
	echo $a;
}
test();
?>

运行结果如下,这样a就可以使用了,每次使用全局变量$a都要这样声明一下,这是php的规则。

值得注意的是,如下的代码是错误的:

<?php
global $a;
$a=5;
function test(){
	echo $a;
}
test();
?>

运行结果同样如此:

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-12-18 23:41:40

【php】global的使用与php的全局变量的相关文章

global与nonlocal

global与nonlocal:   global关键字:   x=1 def foo(): x=10 print(x)     #打印: 10 foo() print(x)          #打印:  1 #############>>>局部的x不会影响全局的x x=1 def foo():                        #使用global关键字,在局部修改全局变量 global x x=10 print(x)     #打印: 10 foo() print(x)  

全局变量污染 闭包 命名空间

原则 用匿名函数将脚本包起来: 使用多级命名空间. 这第二条“使用多级命名空间”这个,我觉得并不是很完美的好主意.因为如果级数太多的话会造成变量名字变得长的一逼. 改进过程 原始代码 没有做过任何优化的满目疮痍的代码.a.js 和 b.js 都有全局变量 window.a ,导致冲突,全局变量属于 window 作用域下的. //a.js <script type="text/javascript"> //都什么时代了,script标签还写type属性呢?黄牌警告!下次绝逼

php全局变量

PHP 全局变量 PHP中预定义了几个超级全局变量(superglobals) ,这意味着它们在一个脚本的全部作用域中都可用. 你不需要特别说明,就可以在函数及类中使用. PHP 超级全局变量列表: $GLOBALS $_SERVER $_REQUEST $_POST $_GET $_FILES $_ENV $_COOKIE $_SESSION 本章节我们将讲解几个常用的超级全局变量,其余变量我们在接下来几个章节会介绍到. PHP $GLOBAL $GLOBAL 是PHP的一个超级全局变量组,在

使用Axure RP原型设计实践04,了解全局变量

变量是一个可以变的数,可以看作是一个数据的容器.变量有2个操作,一个是读,一个是写.Axure的全局变量是指任何时候都可以对这个变量进行读写操作. 点击工具栏Project下的Global Variables,这里可以设置全局变量. 可以看到,默认已经有一个全局变量.还可以新建变量,变量是可以有默认值的. 现在自定义一个全局变量. 向页面中拖入一个Rectangle,设置Rectangle的样式,在Shape Name中设置为rack. 再拖入一个Rectangle,设置成圆形并填充上颜色,作为

PHP_006 超级全局变量

超级全局变量 PHP中预定义了几个超级全局变量(superglobals) ,这意味着它们在一个脚本的全部作用域中都可用. 你不需要特别说明,就可以在函数及类中使用. PHP 超级全局变量列表: $GLOBALS $_SERVER $_REQUEST $_POST $_GET $_FILES $_ENV $_COOKIE $_SESSION $GLOBAL $GLOBAL 是PHP的一个超级全局变量组,在一个PHP脚本的全部作用域中都可以访问. $GLOBAL 是一个包含了全部变量的全局组合数组

(转) 在PHP中使用全局变量

简介 即使开发一个新的大型PHP程序,你也不可避免的要使用到全局数据,因为有些数据是需要用到你的代码的不同部分的.一些常见的全局数据有:程序设定类.数据库连接类.用户资料等等.有很多方法能够使这些数据成为全局数据,其中最常用的就是使用“global”关键字申明,稍后在文章中我们会具体的讲解到.   使用“global”关键字来申明全局数据的唯一缺点就是它事实上是一种非常差的编程方式,而且经常在其后导致程序中出现更大的问题,因为全局数据把你代码中原本单独的代码段都联系在一起了,这样的后果就是如果你

python3--函数(函数,全局变量和局部变量,递归函数)

1.1函数 1.1.1什么是函数 函数就是程序实现模块化的基本单元,一般实现某一功能的集合.函数名:就相当于是程序代码集合的名称参数:就是函数运算时需要参与运算的值被称作为参数函数体:程序的某个功能,进行一系列的逻辑运算return 返回值:函数的返回值能表示函数的运行结果或运行状态. 1.1.2函数的作用 函数是组织好的,可重复使用的,用来实现单一,或者相关功能的代码. 函数能够提高应用的模块性,和代码的重复利用率 我们已近知道python提供了许多内置函数,比如print(),我们自已创建的

git的全局变量

git的全局变量可以用在命令行设置: git config --global user.name "litifeng" git config --global user.email "[email protected]" git config --global color.ui true git config --global push.default simple git config --global core.editor vim git的全局变量会存放在:~

PHP 常量、PHP 变量全解析(超全局变量、变量的8种数据类型等)

常量特点 常量一旦被定义就无法更改或撤销定义. 常量名不需要开头的$ 与变量不同,常量贯穿整个脚本是自动全局的. 作用域不影响对常量的访问 常量值只能是字符串或数字 设置 PHP 常量 如需设置常量,请使用 define(name, value) 函数,它有三个参数: - 首个参数定义常量的名称 - 第二个参数定义常量的值 - 可选的第三个参数规定常量名是否对大小写敏感.默认是大小写敏感:false. define("MYNAME", "白小明"); echo MY