php变量范围介绍


Posted in PHP onOctober 15, 2012

例如:

<?php 
$a = 1; 
include 'b.inc'; 
?>

这里变量 $a 将会在包含文件 b.inc 中生效。但是,在用户自定义函数中,一个局部函数范围将被引入。任何用于函数内部的变量按缺省情况将被限制在局部函数范围内,此时为局部变量。


PHP 中全局变量在函数中使用时必须申明为global。

在函数中使用global声明的变量即为全局变量,可以在函数外使用。注意:global声明变量时,不能直接对变量赋值,需要先声明后赋值。

在全局范围内,也可以通过$GLOBALS访问全局变量,在函数内不需要使用global关键字来访问全局变量了。$GLOBALS 是一个关联数组,每一个变量为一个元素,键名对应变量名,值对应变量的内容。$GLOBALS 之所以在全局范围内存在,是因为 $GLOBALS 是一个超全局变量。

常量可以不用理会变量的作用域而在任何地方定义和访问;

变量范围的另一个重要特性是静态变量(static variable)。静态变量仅在局部函数域中存在,但当程序执行离开此作用域时,其值并不丢失。静态变量仅在第一次调用时进行初始化,声明时可以对其赋值,不能是表达式值。如果在声明中用表达式的结果对其赋值会导致解析错误。

当把一个引用(带上&的变量或对象)赋值给一个静态变量时,引用并不是静态地存储的,第二次调用函数时静态变量其值并没有被记住。同样,当把一个引用(带上&的变量或对象)赋值给global变量时,此变量的变化对函数外不起作用,作用范围只在该函数内。

PHP 相关文章推荐
十天学会php之第六天
Oct 09 PHP
给多个地址发邮件的类
Oct 09 PHP
简单的用PHP编写的导航条程序
Oct 09 PHP
php设计模式 Mediator (中介者模式)
Jun 26 PHP
php获取mysql字段名称和其它信息的例子
Apr 14 PHP
php实现字符串首字母大写和单词首字母大写的方法
Mar 14 PHP
php基于session实现数据库交互的类实例
Aug 03 PHP
PHP中类的自动加载的方法
Mar 17 PHP
ubutu 16.04环境下,PHP与mysql数据库,网页登录验证实例讲解
Jul 20 PHP
详解php 使用Callable Closure强制指定回调类型
Oct 26 PHP
PHP中cookie知识点学习
May 06 PHP
PHP如何防止XSS攻击与XSS攻击原理的讲解
Mar 22 PHP
php模板函数 正则实现代码
Oct 15 #PHP
php mssql扩展SQL查询中文字段名解决方法
Oct 15 #PHP
PHP获取文件后缀名的三个函数
Oct 15 #PHP
php标签云的实现代码
Oct 10 #PHP
域名和cookie问题(域名后缀)
Oct 10 #PHP
记录PHP错误日志 display_errors与log_errors的区别
Oct 09 #PHP
php在程序中将网页生成word文档并提供下载的代码
Oct 09 #PHP
You might like
Javascript处理DOM元素事件实现代码
2012/05/23 Javascript
鼠标经过tr时,改变tr当前背景颜色
2014/01/13 Javascript
jQuery中document与window以及load与ready 区别详解
2014/12/29 Javascript
jQuery随机密码生成的方法
2015/03/09 Javascript
详解JavaScript ES6中的Generator
2015/07/28 Javascript
使用node+vue.js实现SPA应用
2016/01/28 Javascript
微信小程序 时间格式化(util.formatTime(new Date))详解
2016/11/16 Javascript
JS实现十字坐标跟随鼠标效果
2017/12/25 Javascript
node.js实现微信开发之获取用户授权
2019/03/18 Javascript
JavaScript对象原型链原理解析
2020/01/22 Javascript
javascript实现智能手环时间显示
2020/09/18 Javascript
Python中方法链的使用方法
2016/02/23 Python
python用BeautifulSoup库简单爬虫实例分析
2018/07/30 Python
Python编写合并字典并实现敏感目录的小脚本
2019/02/26 Python
python不相等的两个字符串的 if 条件判断为True详解
2020/03/12 Python
Python3如何判断三角形的类型
2020/04/12 Python
python实例化对象的具体方法
2020/06/17 Python
基于Python的图像阈值化分割(迭代法)
2020/11/20 Python
Html5写一个简单的俄罗斯方块小游戏
2019/12/03 HTML / CSS
Bally巴利中国官网:经典瑞士鞋履、手袋及配饰奢侈品牌
2018/10/09 全球购物
美国乒乓球设备、配件和服装品牌:Killerspin
2020/06/07 全球购物
static全局变量与普通的全局变量有什么区别
2014/05/27 面试题
物业管理公司实习生自我鉴定
2013/09/19 职场文书
家佳咖啡店创业计划书
2013/12/27 职场文书
婚前协议书
2014/04/15 职场文书
党的群众路线教育实践活动宣传标语口号
2014/06/06 职场文书
老龄工作先进事迹
2014/08/15 职场文书
2014年家长学校工作总结
2014/11/20 职场文书
党员反邪教心得体会
2016/01/15 职场文书
课改心得体会范文
2016/01/25 职场文书
三年级作文之小小梦想
2019/12/06 职场文书
python保存大型 .mat 数据文件报错超出 IO 限制的操作
2021/05/10 Python
使用GO语言实现Mysql数据库CURD的简单示例
2021/08/07 Golang
Python中request的基本使用解决乱码问题
2022/04/12 Python
python微信智能AI机器人实现多种支付方式
2022/04/12 Python
阿里面试Nacos配置中心交互模型是push还是pull原理解析
2022/07/23 Java/Android