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 相关文章推荐
搜索和替换文件或目录的一个好类--很实用
Oct 09 PHP
php adodb连接带密码access数据库实例,测试成功
May 14 PHP
PHP中的strtr函数使用介绍(str_replace)
Oct 20 PHP
学习php分页代码实例
Oct 24 PHP
php获取远程图片体积大小的实例
Nov 12 PHP
PHP判断上传文件类型的解决办法
Oct 20 PHP
ZF框架实现发送邮件的方法
Dec 03 PHP
PHP程序中使用adodb连接不同数据库的代码实例
Dec 19 PHP
WordPress中用于创建以及获取侧边栏的PHP函数讲解
Dec 29 PHP
CodeIgniter集成smarty的方法详解
May 26 PHP
PHP实现删除多重数组对象属性并重新赋值的方法
Jun 07 PHP
详解Laravel设置多态关系模型别名的方式
Oct 17 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生成固定长度纯数字编码的方法
2015/07/09 PHP
PHP中Restful api 错误提示返回值实现思路
2016/04/12 PHP
php5.3后静态绑定用法详解
2016/11/11 PHP
php中namespace及use用法分析
2016/12/06 PHP
javascript 写类方式之六
2009/07/05 Javascript
浅谈setTimeout 与 setInterval
2015/06/23 Javascript
javascript中使用正则表达式清理table样式的代码
2020/04/01 Javascript
AngularJS优雅的自定义指令
2016/07/01 Javascript
url传递的参数值中包含&amp;时,url自动截断问题的解决方法
2016/08/02 Javascript
Bootstrap实现带暂停功能的轮播组件(推荐)
2016/11/25 Javascript
详谈Angular路由与Nodejs路由的区别
2017/03/05 NodeJs
JavaScript Canvas绘制圆形时钟效果
2020/08/20 Javascript
animate.css在vue项目中的使用教程
2018/08/05 Javascript
详解js的视频和音频采集
2018/08/09 Javascript
node.js基于socket.io快速实现一个实时通讯应用
2019/04/23 Javascript
vue自定义js图片碎片轮播图切换效果的实现代码
2019/04/28 Javascript
原生JS实现顶部导航栏显示按钮+搜索框功能
2019/12/25 Javascript
基于vue和websocket的多人在线聊天室
2020/02/01 Javascript
vue.config.js中配置Vue的路径别名的方法
2020/02/11 Javascript
[08:47]DOTA2每周TOP10 精彩击杀集锦vol.6
2014/06/25 DOTA
记录Django开发心得
2014/07/16 Python
详解Python编程中对Monkey Patch猴子补丁开发方式的运用
2016/05/27 Python
利用python将xml文件解析成html文件的实现方法
2017/12/22 Python
Python使用matplotlib实现的图像读取、切割裁剪功能示例
2018/04/28 Python
python远程邮件控制电脑升级版
2019/05/23 Python
Python线程指南分享
2019/11/19 Python
python如何查看安装了的模块
2020/06/23 Python
阿迪达斯印度官方商城:adidas India
2017/03/26 全球购物
TripAdvisor瑞典:全球领先的旅游网站
2017/12/11 全球购物
西班牙Polo衫品牌:Polo Club
2020/08/09 全球购物
Internet主要有哪些网络群组成
2015/12/24 面试题
先进班级集体事迹材料
2014/01/30 职场文书
表演方阵解说词
2014/02/08 职场文书
2015年秋季新学期寄语
2015/03/25 职场文书
python 制作一个gui界面的翻译工具
2021/05/14 Python
MybatisPlus代码生成器的使用方法详解
2021/06/13 Java/Android