php学习之 认清变量的作用范围


Posted in PHP onJanuary 26, 2010

任务2:认清变量的作用范围

⚑局部变量与全局变量

变量的存在有着它的生命周期,我们可以让它存在于一个小的函数内部,也可让它存在于整个程序当中。对于一般情况下声明的变量,我们称之为局部变量,只能在当前程序段中存在,而使用$globals声明出来的变量则是在当前页面整个程序当中都会有效。

例:

<?php 
$a=1; 
$b=2; 
function sum() 
{$a; 
$b; 
$b=$a+$b; 
} 
sum(); 
echo$b; 
?>

在这段程序当中,
第2至3行,我们建立了两个变量a和b并分别给其赋值为1和2。
第3行至第7行,我们定义了一个自加的函数sum(),其作用是让sum内部的变量a和b进行相加,并将加得的值赋给b。
第8行,调用sum函数。
第9行,用echo将b的值输出。
可能有人会认为此时在网页上输出的值一定是3,但是运行后你会发现,值还是为2,也就是b原先的值。这就是局部变量的原因造成的,在第2至3行当中声明的变量无法在sum()函数中使用,也就是说,sum函数中使用的a和b和第2至3行中a和b只是名字相同,但两者之间毫无关系。所以,在最终输出的b也就是第3行b的值了。

但如果,我们将程序修改下面的样式:

<?php 
$a=1; 
$b=2; 
function sum() 
{ 
global $a,$b; 
$b=$a+$b; 
} 
sum(); 
echo $b; 
?>

我们发现,在sum函数中,我们给变量a和b加上了一个global修饰符,这个时候,a和b就和函数外的a和b建立上了关系,它们就是同一个变量了。因此,这个程序在运行的时候,其结果就为3了。因此,我们在声明全局变量时,只需在局部使用它们时(本例中是在函数sum中),给它们加上一个修饰符global,它们就可以继承外部的值,也就不再是局部变量了。
PHP 相关文章推荐
Session服务器配置指南与使用经验的深入解析
Jun 17 PHP
PHP APC配置文件2套和参数详解
Jun 11 PHP
PHP多线程编程之管道通信实例分析
Mar 07 PHP
php单文件版在线代码编辑器
Mar 12 PHP
Codeigniter通过SimpleXML将xml转换成对象的方法
Mar 19 PHP
php根据日期显示所在星座的方法
Jul 13 PHP
WordPress中对访客评论功能的一些优化方法
Nov 24 PHP
php自定义时间转换函数示例
Dec 07 PHP
php + nginx项目中的权限详解
May 23 PHP
关于ThinkPHP中的异常处理详解
May 11 PHP
laravel 框架结合关联查询 when()用法分析
Nov 22 PHP
php 输出缓冲 Output Control用法实例详解
Mar 03 PHP
PHP 变量的定义方法
Jan 26 #PHP
php cout&amp;lt;&amp;lt;的一点看法
Jan 24 #PHP
php addslashes和mysql_real_escape_string
Jan 24 #PHP
PHPMailer 中文使用说明小结
Jan 22 #PHP
关于php fread()使用技巧
Jan 22 #PHP
PHP 时间转换Unix时间戳代码
Jan 22 #PHP
PHP 实用代码收集
Jan 22 #PHP
You might like
PHP中的MYSQL常用函数(php下操作数据库必备)
2010/09/12 PHP
重新封装zend_soap实现http连接安全认证的php代码
2011/01/12 PHP
服务器上配置PHP运行环境教程
2015/02/12 PHP
Laravel框架自定义分页样式操作示例
2020/01/26 PHP
jquery实现弹出div,始终显示在屏幕正中间的简单实例
2014/03/08 Javascript
简单谈谈jQuery(function(){})与(function(){})(jQuery)
2014/12/19 Javascript
jQuery菜单插件用法实例
2015/07/25 Javascript
jQuery点击其他地方时菜单消失的实现方法
2016/04/22 Javascript
jQuery实现图片向左向右切换效果的简单实例
2016/05/18 Javascript
原生js实现返回顶部缓冲效果
2017/01/18 Javascript
angular实现商品筛选功能
2017/02/01 Javascript
详解从Vue.js源码看异步更新DOM策略及nextTick
2017/10/11 Javascript
vue-cli2.9.3 详细教程
2018/04/23 Javascript
vue使用vuex实现首页导航切换不同路由的方法
2019/05/08 Javascript
uni-app如何实现增量更新功能
2020/01/03 Javascript
Python3实现将文件归档到zip文件及从zip文件中读取数据的方法
2015/05/22 Python
Python实现求笛卡尔乘积的方法
2017/09/16 Python
在python里协程使用同步锁Lock的实例
2019/02/19 Python
Python集中化管理平台Ansible介绍与YAML简介
2019/06/12 Python
python:动态路由的Flask程序代码
2019/11/22 Python
django中嵌套的try-except实例
2020/05/21 Python
python logging模块的使用详解
2020/10/23 Python
举例说明类变量和实例变量的区别
2016/06/30 面试题
个人简历自我鉴定
2013/10/11 职场文书
汽车维修专业毕业生的求职信分享
2013/12/04 职场文书
大学校园毕业自我鉴定
2014/01/15 职场文书
新品发布会策划方案
2014/06/08 职场文书
标准离婚协议书(2014版)
2014/10/05 职场文书
失职检讨书大全
2015/01/26 职场文书
英语邀请函范文
2015/02/02 职场文书
歌舞青春观后感
2015/06/10 职场文书
复活读书笔记
2015/06/29 职场文书
导游词之山东红叶谷
2019/10/31 职场文书
phpQuery解析HTML乱码问题(补充官网未列出的乱码解决方案)
2021/04/01 PHP
Mysql数据库手动及定时备份步骤
2021/11/07 MySQL
Win10服务全部禁用了怎么启动?Win10服务全部禁用解决方法
2022/09/23 数码科技