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 相关文章推荐
不用mod_rewrite直接用php实现伪静态化页面代码
Oct 04 PHP
php 上一篇,下一篇文章实现代码与原理说明
May 09 PHP
php实现加减法验证码代码
Feb 14 PHP
PHP魔术引号所带来的安全问题分析
Jul 15 PHP
php数组键名技巧小结
Feb 17 PHP
如何实现php图片等比例缩放
Jul 28 PHP
两种php给图片加水印的实现代码
Apr 18 PHP
最准确的php截取字符串长度函数
Oct 29 PHP
开启PHP的伪静态模式
Dec 31 PHP
PHP中strcmp()和strcasecmp()函数字符串比较用法分析
Jan 07 PHP
PHP安全下载文件的方法
Apr 07 PHP
thinkPHP3.2.3结合Laypage实现的分页功能示例
May 28 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中session的实现原理以及大网站应用应注意的问题
2013/06/17 PHP
解析thinkphp中的导入文件标签
2013/06/20 PHP
php输出xml必须header的解决方法
2014/10/17 PHP
smarty简单入门实例
2014/11/28 PHP
thinkphp配置文件路径的实现方法
2016/08/30 PHP
PHP实现链式操作的原理详解
2016/09/16 PHP
PHP 实现链式操作
2021/03/09 PHP
javascript 去字符串空格终极版(支持utf8)
2009/11/14 Javascript
自己用jQuery写了一个图片的马赛克消失效果
2014/05/04 Javascript
javascript刷新父页面的各种方法汇总
2014/09/03 Javascript
jQuery内容过滤选择器用法分析
2015/02/10 Javascript
javascript实现列表滚动的方法
2015/07/30 Javascript
JavaScript中var关键字的使用详解
2015/08/14 Javascript
AngularJS ng-bind-template 指令详解
2016/07/30 Javascript
jQuery中DOM节点的删除方法总结(超全面)
2017/01/22 Javascript
vue把输入框的内容添加到页面的实例讲解
2019/11/11 Javascript
js根据后缀判断文件文件类型的代码
2020/05/09 Javascript
JS实现移动端可折叠导航菜单(现代都市风)
2020/07/07 Javascript
[02:23]完美世界全国高校联赛街访DOTA2第一期
2019/11/28 DOTA
[49:15]DOTA2-DPC中国联赛 正赛 CDEC vs XG BO3 第二场 1月19日
2021/03/11 DOTA
python开发中module模块用法实例分析
2015/11/12 Python
简述:我为什么选择Python而不是Matlab和R语言
2017/11/14 Python
Python编程给numpy矩阵添加一列方法示例
2017/12/04 Python
Python中文编码知识点
2019/02/18 Python
python接口自动化(十六)--参数关联接口后传(详解)
2019/04/16 Python
python之array赋值技巧分享
2019/11/28 Python
Python下划线5种含义代码实例解析
2020/07/10 Python
python自动生成sql语句的脚本
2021/02/24 Python
欢迎横幅标语
2014/06/17 职场文书
诉讼授权委托书
2014/10/15 职场文书
关于童年的读书笔记
2015/06/26 职场文书
家长会后的感想
2015/08/11 职场文书
小学生纪律委员竞选稿
2015/11/19 职场文书
2019年行政人事个人工作总结范本!
2019/07/19 职场文书
详解MySQL 联合查询优化机制
2021/05/10 MySQL
Java 深入探究讲解简单工厂模式
2022/04/07 Java/Android