PHP global全局变量经典应用与注意事项分析【附$GLOBALS用法对比】 原创
本文实例讲述了PHP global全局变量的使用与注意事项。分享给大家供大家参考,具体如下:
使用global在方法里面声明外部变量为全局变量,即可以调用该变量。
示例1. global基本用法
<?php $a=1; $b=2; test_global(); function test_global() { global $a,$b; echo $a+$b; //输出3 }
示例2. global引用
<?php $var $a=1; function test(){ global $a; $a++; unset($a); } test(); echo $a;
运行结果:
2
注意:
1. 此处函数中的global引用了外部的$a,是作为外部变量$a的同名引用或指针。因此函数内部的$a++可以改变外部$a 的值。
2. unset($a)是删除的别名引用,对于变量的值没有任何影响。
补充:$GLOBALS['var']全局变量应用
<?php $a = 1; function test(){ unset($GLOBALS['a']); } test(); echo $a;
运行上述代码,输出为空!
注意:这里的$GLOBALS['a']是外部变量本身!即:global $a等价于&$GLOBALS['a']。
更多关于PHP相关内容感兴趣的读者可查看本站专题:《php常用函数与技巧总结》、《php字符串(string)用法总结》、《PHP数据结构与算法教程》、《php程序设计算法总结》及《PHP数组(Array)操作技巧大全》
希望本文所述对大家PHP程序设计有所帮助。
相关推荐
-
PHP Global变量定义当前页面的全局变量实现探讨
PHP Global变量在实际应用中会发现许多问题需要我们不断的去完善处理.我们在这篇文章中就针对PHP Global变量出现的问题给出了一些具体的解决办法. 1:PHP Global变量的作用是定义全局变量,但是这个全局变量不是应用于整个网站,而是应用于当前页面,包括include或require的所有文件 复制代码 代码如下: $a=123; function aa() { Global $a; //如果不把$a定义为global变量 ,函数体内是不能访问$a的 echo $a; } aa(
-
PHP语言中global和$GLOBALS[]的分析 之二
还是借用上一篇的例子: PHP代码 复制代码 代码如下: <?php // 例子1 function test_global() { global $var1, $var2; $var2 =& $var1; } function test_globals() { $GLOBALS['var3'] =& $GLOBALS['var1']; } $var1 = 5; $var2 = $var3 = 0; test_global(); print $var2 ."\n"
-
php中global和$GLOBALS[]的分析之一
这可能引起一些问题,有些人可能漫不经心的改变一个全局变量.PHP 中全局变量在函数中使用时必须申明为全局(注意,Global这个关键字在函数中定义才有用). 1:Global的作用是定义全局变量,但是这个全局变量不是应用于整个网站,而是应用于当前页面,包括include或require的所有文件. 复制代码 代码如下: <?PHP $a=123; function aa() { Global $a; //如果不把$a定义为global变量,函数体内是不能访问函数体外部的$a的,但是可以定义一个相
-
PHP中$GLOBALS与global的区别详解
PHP中$GLOBALS和global都可以实现全局变量的功能,所以很多人都认为global和$GLOBALS[]只是写法上面的差别,其实不然.$GLOBALS 是一个超级全局变量,其实是一个数组,而global 则是一个声明全局变量的关键字! 一.超全局变量$GLOBALS PHP超全局变量有很多,如下的都属于超全局变量(Superglobal): $GLOBALS,$_SERVER,$_GET,$_POST,$_FILES,$_COOKIE,$_SESSION,$_REQUEST,$_ENV
-
PHP中全局变量global和$GLOBALS[]的区别分析
一.举例比较 例一: 复制代码 代码如下: <?php $var1 = 1; function test(){ unset($GLOBALS['var1']); } test(); echo $var1; ?> 因为$var1被删除了,所以什么东西都没有打印. 例二: 复制代码 代码如下: <?php $var1 = 1; function test(){ global $var1; unset($var1); } test(); echo $var1; ?> 意外的打印了1.证明
-
php中全局变量global的使用演示代码
我来给处入行的人讲解一下全局变量global的使用,"全局变量",这个名词中的全局两个字已经告诉我们这个变量在各个地方都能用,先看一个实例: 复制代码 代码如下: <?php $a = 1; $b = 2; function Sum() { global $a, $b; //在里面声明为全局变量 $b = $a + $b; } Sum(); echo $b; ?> 结果: 3 如果没有全局变量global在方法内是不能获得$a,$b值的,所以在方法里面想用外面的变量就需要先
-
PHP中$GLOBALS['HTTP_RAW_POST_DATA']和$_POST的区别分析
本文分析了PHP中$GLOBALS['HTTP_RAW_POST_DATA']和$_POST的区别.分享给大家供大家参考,具体如下: $_POST:通过 HTTP POST 方法传递的变量组成的数组.是自动全局变量. $GLOBALS['HTTP_RAW_POST_DATA'] :总是产生 $HTTP_RAW_POST_DATA 变量包含有原始的 POST 数据.此变量仅在碰到未识别 MIME 类型的数据时产生.$HTTP_RAW_POST_DATA 对于 enctype="multipart/
-
php多次include后导致全局变量global失效的解决方法
本文实例讲述了php多次include后导致全局变量global失效的解决方法.分享给大家供大家参考.具体分析如下: 在多个文件中,文件一个接一个include,但最后一个文件里的函数使用global后却无法引用全局变量.例如: a.php文件: <?php $aa = 1; ?> b.php文件: <?php include a.php function show(){ global $aa; var_dump($aa); } ?> 显示:null; 这种失效是由于多种原因造成的
-
PHP Global定义全局变量使用说明
很不习惯PHP中的变量作用域,PHP中函数变量和全局是完全隔绝的,也就是无法相互访问.比如下面这样: 复制代码 代码如下: $test = 123; abc(); //这里什么都不输出,因为访问不到$test变量function abc(){ echo($test);}$test = 123;abc(); //这里什么都不输出,因为访问不到$test变量function abc(){ echo($test);} 如果,你想在函数内部访问外部变量,你需要这样: 复制代码 代码如下: $
-
PHP global全局变量经典应用与注意事项分析【附$GLOBALS用法对比】 原创
本文实例讲述了PHP global全局变量的使用与注意事项.分享给大家供大家参考,具体如下: 使用global在方法里面声明外部变量为全局变量,即可以调用该变量. 示例1. global基本用法 <?php $a=1; $b=2; test_global(); function test_global() { global $a,$b; echo $a+$b; //输出3 } 示例2. global引用 <?php $var $a=1; function test(){ global $a;
-
Python global全局变量函数详解
global语句的作用 在编写程序的时候,如果想为一个在函数外的变量重新赋值,并且这个变量会作用于许多函数中时,就需要告诉python这个变量的作用域是全局变量.此时用global语句就可以变成这个任务,也就是说没有用global语句的情况下,是不能修改全局变量的. 在python的函数使用时,经常会碰到参数定义的问题.如果不声明全局变量,会报错 count = 1 def cc(): count = count+1 cc() Traceback (most recent call last):
-
python 函数的缺省参数使用注意事项分析
本文实例讲述了python 函数的缺省参数使用注意事项.分享给大家供大家参考,具体如下: python的函数支持4种形式的参数:分别是必选参数. 缺省参数. 可变长参数.关键字参数:而且参数的书写顺序也是又一定规定的,顺序如下 def fun(param, default_params, arbitrary_params, keyword_param) 下面针对缺省型参数分析一些注意事项 先定义这样子一个函数 def test_fun(a=[]): a.append('a') print a i
-
javascript的switch用法注意事项分析
本文实例分析了javascript的switch用法注意事项.分享给大家供大家参考.具体分析如下: 先来看以下代码: <script> var t_jb51_net = 65; switch (t_jb51_net) { case '65': alert("字符串65.jb51.net"); break; } </script> 你会发现没有弹出对话框,alert没有执行. 原因分析: 这里需要明确的是,switch在判断的时候使用的是全等号"===&
-
JS使用eval解析JSON的注意事项分析
本文较为详细的分析了JS使用eval解析JSON的注意事项.分享给大家供大家参考,具体如下: 在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. 使用Function对象来进行返回解析. 使用eval函数来解析,并且使用jquery的each方法来遍历 用jquery解析JSON数据的方法,作为jquery异步请求的传输对象,jquery请求后返回的结果是json对象,这里考虑的都是服务器 返回JSON形式的字符串的形式,对于利用JSONO
-
php抽象类使用要点与注意事项分析
本文实例分析了php抽象类使用要点与注意事项.分享给大家供大家参考.具体分析如下: php抽象类使用要点与注意事项如下: 1.用 abstract 来修饰一个类,那么这个类就是抽象类:抽象类绝对不能被实例化,即$abc = new 抽象类名();会报错. 2.用abstract 来修饰一个方法,那么该方法就是抽象方法: 3.如果类中有一个抽象方法,那么该类就必须定义为抽象类:但反过来,抽象类里并不一定要有抽象方法.另外,抽象类里也可以有普通方法. 4.抽象方法不能有方法体.即abstract f
-
php中array_unshift()修改数组key注意事项分析
本文实例分析了php中array_unshift()修改数组key注意事项.分享给大家供大家参考,具体如下: 众所周知,array_unshift()用来在数组的开头添加元素,但今天突然发现如果数组的键值是数字类型的(或能转成数字类型的),array_unshift()会修改所有键为数字的元素的Key,真是坑啊 实例: $a=array(111=>"dddddddddddd","112"=>array("one"=>"
-
ThinkPHP后台首页index使用frameset时的注意事项分析
html的frameset标签在多窗口程序设计中有着广泛的应用,尤其是在项目后台页面部分.本文就来分析ThinkPHP后台首页index使用frameset时的注意事项.具体如下: 文件路径:aoli/admin/Lib/Action/IndexAction.class.php 代码如下: <?php class IndexAction extends Action{ public function index(){ $this->display(); } public function to
-
一些php技巧与注意事项分析
从浏览器上看,使用 header(location) 就跳转到另一个页面了,但事实上,php却仍然会执行后台的代码的,假如后面的代码有不安全逻辑的,那就直接无视开发者设定的条件,继续把后面的东西给执行了. 如: 复制代码 代码如下: if(true) { header('location:http://www.jb51.net'); } file_put_contents('test.txt', 'ok'); 这个代码中,粗心的程序员会以为 header('location:http://www
-
php函数传值的引用传递注意事项分析
本文实例讲述了php函数传值的引用传递注意事项.分享给大家供大家参考,具体如下: Strict standards: Only variables should be passed by reference 网上查到资料有这么一句话: 在php5.3以上版本会出这个问题,应该也和php的配置有关,只要把这一句拆成两句就没有问题了.因为array_walk的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值.当然你也可以修改php.ini 里的 error_reporting
随机推荐
- JavaScript实现给按钮加上双重动作的方法
- JavaScript直播评论发弹幕切图功能点集合效果代码
- 2个自定义的PHP in_array 函数,解决大量数据判断in_array的效率问题
- 浅析is_writable的php实现
- 跟老齐学Python之编写类之二方法
- C#使用MailAddress类发送html格式邮件的实例代码
- C#中使用迭代器处理等待任务
- javascript 实现自由落体的方块效果
- 解决IE6 3像素Bug的css写法
- JSP中用回车监听按钮事件兼容火狐 IE等主流浏览器
- Javascript入门学习第二篇 js类型第1/2页
- jQuery Chart图表制作组件Highcharts用法详解
- C#生成DLL文件的方法
- xmlplus组件设计系列之列表(4)
- futuretask源码分析(推荐)
- 深入浅析STL vector用法
- 浅析Android 手机卫士设备管理权限锁屏
- android开发教程之使用线程实现视图平滑滚动示例
- 浅谈mvvm-simple双向绑定简单实现
- js canvas实现画图、滤镜效果