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 中的输出缓冲
Dec 21 PHP
php 分页类 扩展代码
Jun 11 PHP
php 生成饼图 三维饼图
Sep 28 PHP
用sql命令修改数据表中的一个字段为非空(not null)的语句
Jun 04 PHP
Uncaught exception com_exception with message Failed to create COM object
Jan 11 PHP
PHP屏蔽蜘蛛访问代码及常用搜索引擎的HTTP_USER_AGENT
Mar 06 PHP
基于php 随机数的深入理解
Jun 05 PHP
Memcached常用命令以及使用说明详解
Jun 27 PHP
CentOS 6.3下安装PHP xcache扩展模块笔记
Sep 10 PHP
php通过array_unshift函数添加多个变量到数组前端的方法
Mar 18 PHP
PHP Ajax JavaScript Json获取天气信息实现代码
Aug 17 PHP
thinkphp实现附件上传功能
May 26 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
PHP5中的this,self和parent关键字详解教程
2007/03/19 PHP
ecshop实现smtp发送邮件
2015/02/03 PHP
PHP实现通过Luhn算法校验信用卡卡号是否有效
2015/03/23 PHP
php生成图片验证码-附五种验证码
2015/08/19 PHP
Laravel 5.5 的自定义验证对象/类示例代码详解
2017/08/29 PHP
jQuery选择没有colspan属性的td的代码
2010/07/06 Javascript
jQuery+CSS 半开折叠效果原理及代码(自写)
2013/03/04 Javascript
jQuery自动切换/点击切换选项卡效果的小例子
2013/08/12 Javascript
sencha touch 模仿tabpanel导航栏TabBar的实例代码
2013/10/24 Javascript
深入理解javascript动态插入技术
2013/11/12 Javascript
用javascript关闭本窗口技巧小结
2014/09/05 Javascript
基于BootStarp的Dailog
2016/04/28 Javascript
javascript如何定义对象数组
2016/06/07 Javascript
Three.js学习之几何形状
2016/08/01 Javascript
jquery点击回车键实现登录效果并默认焦点的方法
2018/03/09 jQuery
vue-cli 引入、配置axios的方法
2018/05/08 Javascript
vue css 引入asstes中的图片无法显示的四种解决方法
2020/03/16 Javascript
python 排序算法总结及实例详解
2016/09/28 Python
对python append 与浅拷贝的实例讲解
2018/05/04 Python
python实现验证码识别功能
2018/06/07 Python
Python操作excel的方法总结(xlrd、xlwt、openpyxl)
2019/09/02 Python
详解Python中import机制
2020/09/11 Python
基于python实现复制文件并重命名
2020/09/16 Python
10个python爬虫入门基础代码实例 + 1个简单的python爬虫完整实例
2020/12/16 Python
一个入门级python爬虫教程详解
2021/01/27 Python
html5中canvas学习笔记1-画板的尺寸与实际显示尺寸
2013/01/06 HTML / CSS
The Hut德国站点:时装、家居用品、美容等
2016/09/23 全球购物
寻找完美的房车租赁:RVShare
2019/02/23 全球购物
如何进行Linux分区优化
2013/02/12 面试题
小学生家长寄语
2014/04/02 职场文书
保密工作责任书
2014/04/16 职场文书
代办出身证明书
2014/10/21 职场文书
装修公司管理制度
2015/08/05 职场文书
高中地理教学反思
2016/02/19 职场文书
SqlServer: 如何更改表的文件组?(进而改变存储位置)
2021/04/05 SQL Server
MySQL数据库Innodb 引擎实现mvcc锁
2022/05/06 MySQL