0

0

PHP变量作用域实例详解

怪我咯

怪我咯

发布时间:2017-04-27 17:12:33

|

2706人浏览过

|

来源于php中文网

原创

什么是变量作用域

变量在使用是,要符合变量的定义规则。变量必须在有效的范围使用,如果变量超出了有限范围,变量也就没有意义了,就好像我们有一百块钱,我们可以购买一百块钱以内的东西,如果物品超出了一百块钱,那么这一百块也就不能用了。一百块钱就相当于这个变量,而一百块以内的范围就相当于作用域。

PHP的变量由于作用域不同,分为:局部变量,全局变量和静态变量,如下表:

作用域 说明
局部变量 在函数的内部定义的变量,作用域就是所在的函数范围
全局变量 在被定义所有的函数以外的变量,作用域是整个PHP文件,但是在用户自定义函数内部是不能使用的。如果希望用户在用户自定义函数内部使用全局变量,则使用global关键字声明全局变量
静态变量 能够在函数调用结束后仍保留变量值,当再次回到其作用域,又可以继续使用原来的值。而一般变量是在函数调用后,其存储的数据值会被清除,所占用的内存空间也会被释放。使用静态变量时,先要用关键字static来声明变量,把关键字static放在要定义的变量之前

1486188938564607.gif在函数内部定义的变量,其作用域为所在的函数,如果在函数外赋值,将被认为是完全不同的另一个变量。在退出声明变量的函数时,该变量及相应的值就会被清除。

实例

立即学习PHP免费学习笔记(深入)”;

本实例用于比较在函数内赋值的变量(局部变量)和在函数外赋值的变量(全局变量),实例代码如下:

";         //输出局部变量
}
add();                                                  //调用函数
echo "在函数外输出的内容是:".$exam;                    //输出全局变量


?>

运行结果如下:

0.jpg

静态变量在很多地方都能用到。例如,在博客中使用静态变量记录浏览者的人数,每一次用户访问和离开时,都能够保留目前浏览者的人数。在聊天室中也可以使用静态变量来记录用户的聊天内容。

示例

在下面的实例使用静态变量和普通变量同事输出一个数据,查看一下两者的功能有什么不同,代码如下:

";
for ($i=0;$i<10;$i++)   zdy1(); //输出10个1
echo "
"; ?>

代码运行结果:

《PHP编程(第3版)》
《PHP编程(第3版)》

这是一本可以让读者深入了解PHP 技术的书籍,作者用言简意赅的语言并结合了大量实例来解释每一个要素。《PHP编程(第3版)》涵盖了PHP 所有基本的要点,不管你是一个想从头开始学习PHP的人,还是对PHP 已经有了基础想继续深入的人,这本书都很合适。

下载

1.jpg

实例详解:

自定义函数zdy()是输出从1~10共10个数字,而zdy1()函数则输出的是10个1.,因为自定义函数zdy()含有静态变量$message,而函数zdy1()中$message是一个普通变量。两个变量初始化都为0,在分别使用for循环调用两个函数,结果函数zdy()在被调用后保留了静态变量$message中的值。而静态变量的初始化只是在函数第一次调用是被执行,以后就不再对其初始化操作了。而函数zdy1()在被调用后,其变量$message失去原来的值,重新被初始化为0.

全局变量可以在程序中的任何地方访问,但是在用户自定义函数内部是不能使用的。如果希望用户在用户自定义函数内部使用全局变量,要使用global关键字声明全局变量

示例

下面在自定义函数中应用全局变量与不应用全局变量进行对比。本例中定义两个全局变量$zy和$zyy,在用户自定义函数lxt()中,希望在第5,7行调用他们,而程序输出的结果只有$zyy

的值“PHP中文网”,因为在第6行用global关键字声明了全局变量$zyy。而第5行不会有任何输出,其中的$zy和第二行的$zy没有任何关系,实例代码如下:

";  //$zy 不能被调用,没有输出
    global $zyy;       //利用关键字global 在函数内部说明,不说明认为是私有变量
    echo $zyy."
"; //调用$zyy } lxt(); ?>

代码运行结果:

8.jpg

这就是应用全局变量与不应用全局变量的区别,下一节,我们讲解“可变变量

相关视频教程推荐:《php.cn独孤九贱(4)-php视频教程》变量的作用域

相关文章

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

43

2026.01.16

全民K歌得高分教程大全
全民K歌得高分教程大全

本专题整合了全民K歌得高分技巧汇总,阅读专题下面的文章了解更多详细内容。

84

2026.01.16

C++ 单元测试与代码质量保障
C++ 单元测试与代码质量保障

本专题系统讲解 C++ 在单元测试与代码质量保障方面的实战方法,包括测试驱动开发理念、Google Test/Google Mock 的使用、测试用例设计、边界条件验证、持续集成中的自动化测试流程,以及常见代码质量问题的发现与修复。通过工程化示例,帮助开发者建立 可测试、可维护、高质量的 C++ 项目体系。

24

2026.01.16

java数据库连接教程大全
java数据库连接教程大全

本专题整合了java数据库连接相关教程,阅读专题下面的文章了解更多详细内容。

35

2026.01.15

Java音频处理教程汇总
Java音频处理教程汇总

本专题整合了java音频处理教程大全,阅读专题下面的文章了解更多详细内容。

16

2026.01.15

windows查看wifi密码教程大全
windows查看wifi密码教程大全

本专题整合了windows查看wifi密码教程大全,阅读专题下面的文章了解更多详细内容。

56

2026.01.15

浏览器缓存清理方法汇总
浏览器缓存清理方法汇总

本专题整合了浏览器缓存清理教程汇总,阅读专题下面的文章了解更多详细内容。

16

2026.01.15

ps图片相关教程汇总
ps图片相关教程汇总

本专题整合了ps图片设置相关教程合集,阅读专题下面的文章了解更多详细内容。

9

2026.01.15

ppt一键生成相关合集
ppt一键生成相关合集

本专题整合了ppt一键生成相关教程汇总,阅读专题下面的的文章了解更多详细内容。

26

2026.01.15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP课程
PHP课程

共137课时 | 8.8万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 7.8万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 0.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号