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 相关文章推荐
DedeCms模板安装/制作概述
Mar 11 PHP
php 网页播放器用来播放在线视频的代码(自动判断并选择视频文件类型)
Jun 03 PHP
PHP explode()函数用法、切分字符串
Oct 03 PHP
有道搜索和IP138的IP的API接口(PHP应用)
Nov 29 PHP
浅析PHP原理之变量(Variables inside PHP)
Aug 09 PHP
php中数字0和空值的区别分析
Jun 05 PHP
浅析iis7.5安装配置php环境
May 10 PHP
PHP常用的排序和查找算法
Aug 06 PHP
项目中应用Redis+Php的场景
May 22 PHP
php实现微信扫码自动登陆与注册功能
Sep 22 PHP
Ajax和PHP正则表达式验证表单及验证码
Sep 24 PHP
laravel 时间格式转时间戳的例子
Oct 11 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/06/19 PHP
thinkPHP模型初始化实例分析
2015/12/03 PHP
js 获取中文拼音,Select自动匹配字母获取值的代码
2009/09/23 Javascript
Javascript 复制数组实现代码
2009/11/26 Javascript
JavaScript 图片预览效果 推荐
2009/12/22 Javascript
extjs grid设置某列背景颜色和字体颜色的方法
2010/09/03 Javascript
js(jQuery)获取时间的方法及常用时间类搜集
2013/10/23 Javascript
jquery选择器大全 全面详解jquery选择器
2014/03/06 Javascript
浅谈Sizzle的“编译原理”
2015/04/14 Javascript
详解JavaScript的回调函数
2015/11/20 Javascript
微信公众平台开发教程(五)详解自定义菜单
2016/12/02 Javascript
微信小程序 PHP生成带参数二维码
2017/02/21 Javascript
AngularJS 异步解决实现方法
2017/06/12 Javascript
基于Bootstrap分页的实例讲解(必看篇)
2017/07/04 Javascript
Vue组件实例间的直接访问实现代码
2017/08/20 Javascript
vue2手机APP项目添加开屏广告或者闪屏广告
2017/11/28 Javascript
详解如何webpack使用DllPlugin
2018/09/30 Javascript
element上传组件循环引用及简单时间倒计时的实现
2018/10/01 Javascript
Vue.js实现大转盘抽奖总结及实现思路
2019/10/09 Javascript
JS中==、===你分清楚了吗
2020/03/04 Javascript
Python序列之list和tuple常用方法以及注意事项
2015/01/09 Python
Python中每次处理一个字符的5种方法
2015/05/21 Python
新手如何快速入门Python(菜鸟必看篇)
2017/06/10 Python
Python 数据处理库 pandas进阶教程
2018/04/21 Python
使用Python制作简单的小程序IP查看器功能
2019/04/16 Python
使用Python opencv实现视频与图片的相互转换
2019/07/08 Python
利用Python实现Shp格式向GeoJSON的转换方法
2019/07/09 Python
CSS3截取字符串实例代码【推荐】
2018/06/07 HTML / CSS
Osklen官方在线商店:巴西服装品牌
2019/04/25 全球购物
市政施工员自我鉴定
2014/01/15 职场文书
数据保密承诺书
2014/06/03 职场文书
2014年督导工作总结
2014/11/19 职场文书
孕妇离婚协议书范本
2014/11/20 职场文书
golang 比较浮点数的大小方式
2021/05/02 Golang
Vue CLI中模式与环境变量的深入详解
2021/05/30 Vue.js
Li list-style-image 图片垂直居中实现方法
2023/05/21 HTML / CSS