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 相关文章推荐
用php解析html的实现代码
Aug 08 PHP
php中常用的预定义变量小结
May 09 PHP
php中使用redis队列操作实例代码
Feb 07 PHP
PHP获取时间排除周六、周日的两个方法
Jun 30 PHP
Yii获取当前url和域名的方法
Jun 08 PHP
PHP+jQuery+Ajax实现分页效果 jPaginate插件的应用
Oct 09 PHP
php格式化json函数示例代码
May 12 PHP
php判断用户是否关注微信公众号
Jul 22 PHP
PHP简单判断iPhone、iPad、Android及PC设备的方法
Oct 11 PHP
php生成毫秒时间戳的实例讲解
Sep 22 PHP
PHP5.5新特性之yield理解与用法实例分析
Jan 11 PHP
php中配置文件保存修改操作 如config.php文件的读取修改等操作
May 12 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+AJAX实现无刷新注册(带用户名实时检测)
2006/12/02 PHP
thinkphp常见路径用法分析
2014/12/02 PHP
ThinkPHP3.2框架自定义配置和加载用法示例
2018/06/14 PHP
php测试kafka项目示例
2020/02/06 PHP
php中try catch捕获异常实例详解
2020/08/06 PHP
一个可以随意添加多个序列的tag函数
2009/07/21 Javascript
js创建对象的几种常用方式小结(推荐)
2010/10/24 Javascript
js判断元素是否隐藏的方法
2014/06/09 Javascript
JavaScript实现按Ctrl键打开新页面
2014/09/04 Javascript
微信支付如何实现内置浏览器的H5页面支付
2015/09/25 Javascript
JavaScript基础篇(6)之函数表达式闭包
2015/12/11 Javascript
Position属性之relative用法
2015/12/14 Javascript
javascript常见数字进制转换实例分析
2016/04/21 Javascript
js实现文字截断功能
2016/09/14 Javascript
如何处理JSON中的特殊字符
2016/11/30 Javascript
深入理解nodejs中Express的中间件
2017/05/19 NodeJs
仿淘宝JSsearch搜索下拉深度用法
2018/01/15 Javascript
jQuery实现使用sort方法对json数据排序的方法
2018/04/17 jQuery
vue.js项目 el-input 组件 监听回车键实现搜索功能示例
2018/08/25 Javascript
vue2过滤器模糊查询方法
2018/09/16 Javascript
TypeScript中的方法重载详解
2019/04/12 Javascript
如何实现双向绑定mvvm的原理实现
2019/05/28 Javascript
解决removeEventListener 无法清除监听的问题
2020/10/30 Javascript
[07:57]DOTA2热力大趴狂欢夜 广州站活动回顾
2013/11/27 DOTA
通过代码实例展示Python中列表生成式的用法
2015/03/31 Python
Python实现简单截取中文字符串的方法
2015/06/15 Python
解决Python3.5+OpenCV3.2读取图像的问题
2018/12/05 Python
python GUI实现小球满屏乱跑效果
2019/05/09 Python
python3中编码获取网页的实例方法
2020/11/16 Python
卡骆驰新加坡官网:Crocs新加坡
2018/06/12 全球购物
德国药房apodiscounter中文官网:德国排名前三的网上药店
2019/06/03 全球购物
公司人力资源的自我评价
2014/01/02 职场文书
美容院考勤制度
2014/01/30 职场文书
五年级英语教学反思
2014/01/31 职场文书
公司股份合作协议书
2014/12/07 职场文书
参加招聘会后的感想
2015/08/10 职场文书