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 相关文章推荐
珊瑚虫IP库浅析
Feb 15 PHP
PHP 输出URL的快捷方式示例代码
Sep 22 PHP
使用php判断服务器是否支持Gzip压缩功能
Sep 24 PHP
Yii查询生成器(Query Builder)用法实例教程
Sep 04 PHP
ThinkPHP独立分组使用的注意事项
Nov 25 PHP
php中define用法实例
Jul 30 PHP
Session 失效的原因汇总及解决丢失办法
Sep 30 PHP
Yii+upload实现AJAX上传图片的方法
Jul 13 PHP
PHP 根据key 给二维数组分组
Dec 09 PHP
老生常谈PHP 文件写入和读取(必看篇)
May 22 PHP
PHP设计模式之PHP迭代器模式讲解
Mar 22 PHP
php DES加密算法实例分析
Sep 18 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
星际争霸教主Flash的ID由来:你永远不会知道他之前的ID是www!
2019/01/18 星际争霸
PHP通用分页类page.php[仿google分页]
2008/08/31 PHP
微信支付PHP SDK ―― 公众号支付代码详解
2016/09/13 PHP
HR vs ForZe BO3 第二场 2.13
2021/03/10 DOTA
JQuery 学习笔记 element属性控制
2009/07/23 Javascript
IE8 chrome中table隔行换色解决办法
2010/07/09 Javascript
基于jQuery的自动完成插件
2011/02/03 Javascript
Json2Template.js 基于jquery的插件 绑定JavaScript对象到Html模板中
2011/10/29 Javascript
js离开或刷新页面检测(且兼容FF,IE,Chrome)
2014/03/05 Javascript
用nodejs实现PHP的print_r函数代码
2014/03/14 NodeJs
复制网页内容,粘贴之后自动加上网址的实现方法(脚本之家特别整理)
2014/10/16 Javascript
JQuery控制radio选中和不选中方法总结
2015/04/15 Javascript
javascript获取本机操作系统类型的方法
2015/08/13 Javascript
js针对ip地址、子网掩码、网关的逻辑性判断
2016/01/06 Javascript
Bootstrap源码解读媒体对象、列表组和面板(10)
2016/12/26 Javascript
基于angular2 的 http服务封装的实例代码
2017/06/29 Javascript
Angular2 组件交互实例详解
2017/08/24 Javascript
jquery实现联想词搜索框和搜索结果分页的示例
2018/10/10 jQuery
详解Vue This$Store总结
2018/12/17 Javascript
JavaScript实现的拼图算法分析
2019/02/13 Javascript
详解JS判断页面是在手机端还是在PC端打开的方法
2019/04/26 Javascript
js设置默认时间跨度过程详解
2019/07/17 Javascript
微信小程序上传图片并等比列压缩到指定大小的实例代码
2019/10/24 Javascript
javascript实现滚轮轮播图片
2020/12/13 Javascript
pymssql ntext字段调用问题解决方法
2008/12/17 Python
Python Socket编程详细介绍
2017/03/23 Python
pyqt5的QWebEngineView 使用模板的方法
2018/08/18 Python
解决win64 Python下安装PIL出错问题(图解)
2018/09/03 Python
python实现自动登录
2018/09/17 Python
十分钟搞定pandas(入门教程)
2019/06/21 Python
详解python pandas 分组统计的方法
2019/07/30 Python
HTML5 CSS3实现一个精美VCD包装盒个性幻灯片案例
2014/06/16 HTML / CSS
辣妈辣妹观后感
2015/06/10 职场文书
篮球拉拉队口号
2015/12/25 职场文书
解决jupyter notebook启动后没有token的坑
2021/04/24 Python
Mybatis-plus在项目中的简单应用
2021/07/01 Java/Android