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读取数据库信息的几种方法
May 24 PHP
php使用websocket示例详解
Mar 12 PHP
php计算几分钟前、几小时前、几天前的几个函数、类分享
Apr 09 PHP
php使用mkdir创建多级目录入门例子
May 10 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(三)
Jun 23 PHP
PHP中auto_prepend_file与auto_append_file用法实例分析
Sep 22 PHP
php实现的IMEI限制的短信验证码发送类
May 05 PHP
PHP实现无限分类的实现方法
Nov 14 PHP
thinkPHP+phpexcel实现excel报表输出功能示例
Jun 06 PHP
PHP实现使用DOM将XML数据存入数组的方法示例
Sep 27 PHP
PHP设计模式之原型模式定义与用法详解
Apr 03 PHP
PHP重载基础知识回顾
Sep 10 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截取utf-8中文字符串乱码的解决方法
2010/03/29 PHP
PHP冒泡排序算法代码详细解读
2011/07/17 PHP
php实现的SSO单点登录系统接入功能示例分析
2016/10/12 PHP
基于JQuery制作的产品广告效果
2010/12/08 Javascript
ie下jquery.getJSON的缓存问题的处理方法
2013/03/29 Javascript
基于js实现投票的实例代码
2015/08/04 Javascript
AngularJS的依赖注入实例分析(使用module和injector)
2017/01/19 Javascript
jQuery中table数据的值拷贝和拆分
2017/03/19 Javascript
ECMAScript6变量的解构赋值实例详解
2017/09/19 Javascript
简易Vue评论框架的实现(父组件的实现)
2018/01/08 Javascript
浅谈React组件之性能优化
2018/03/02 Javascript
如何在微信小程序中使用骨架屏的步骤
2020/06/12 Javascript
vue prop传值类型检验方式
2020/07/30 Javascript
[01:34]完美“圣”典宣传片震撼发布,12.17与你不见不散
2016/12/16 DOTA
[02:12]Dota 2 推出全新英雄—— 电炎绝手
2019/08/23 DOTA
深入理解python try异常处理机制
2016/06/01 Python
python正则实现计算器功能
2017/12/14 Python
浅谈python中对于json写入txt文件的编码问题
2018/06/07 Python
Python3.4学习笔记之 idle 清屏扩展插件用法分析
2019/03/01 Python
Python爬取视频(其实是一篇福利)过程解析
2019/08/01 Python
python多线程+代理池爬取天天基金网、股票数据过程解析
2019/08/13 Python
TensorFlow2.0矩阵与向量的加减乘实例
2020/02/07 Python
Mac PyCharm中的.gitignore 安装设置教程
2020/04/16 Python
HTML5 embed 标签使用方法介绍
2013/08/13 HTML / CSS
原生 JS+CSS+HTML 实现时序图的方法
2019/07/31 HTML / CSS
仓库理货员岗位职责
2013/12/18 职场文书
建筑专业自荐信范文
2014/01/05 职场文书
参观接待方案
2014/03/17 职场文书
学校师德师风自我剖析材料
2014/09/29 职场文书
2014年园林绿化工作总结
2014/12/11 职场文书
销售合作意向书范本
2015/05/08 职场文书
2016秋季校长开学典礼致辞
2015/11/26 职场文书
《角的初步认识》教学反思
2016/02/17 职场文书
HR在给员工开具离职证明时,需要注意哪些问题?
2019/07/03 职场文书
Spring Boot 底层原理基础深度解析
2022/04/03 Java/Android
SQL Server使用T-SQL语句批处理
2022/05/20 SQL Server