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 相关文章推荐
一次编写,随处运行
Oct 09 PHP
优化php效率,提高php性能的一些方法
Mar 24 PHP
PHP简洁函数小结
Aug 12 PHP
php用header函数实现301跳转代码实例
Nov 25 PHP
PHP return语句的另一个作用
Jul 30 PHP
PHP获取文件行数的方法
Jun 10 PHP
Yii2 输出xml格式数据的方法
May 03 PHP
php 三元运算符实例详细介绍
Dec 15 PHP
Yii 2.0在Grid中格式化时间方法示例
Jun 06 PHP
php调用云片网接口发送短信的实现方法
Oct 25 PHP
Yii2框架redis基本应用示例
Jul 13 PHP
laravel框架学习笔记之组件化开发实现方法
Feb 01 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
paypal即时到账php实现代码
2010/11/28 PHP
利用PHP实现智能文件类型检测的实现代码
2011/08/02 PHP
set_include_path和get_include_path使用及注意事项
2013/02/02 PHP
简单的php新闻发布系统教程
2014/05/09 PHP
在Thinkphp中使用ajax实现无刷新分页的方法
2016/10/25 PHP
jquery学习笔记 用jquery实现无刷新登录
2011/08/08 Javascript
html5的自定义data-*属性和jquery的data()方法的使用示例
2013/08/21 Javascript
JavaScript Math.ceil 方法(对数值向上取整)
2015/01/09 Javascript
浅谈利用JavaScript进行的DDoS攻击原理与防御
2015/06/04 Javascript
jqGrid表格应用之新增与删除数据附源码下载
2015/12/02 Javascript
jQuery中的基本选择器用法学习教程
2016/04/14 Javascript
JS实现消息来时让网页标题闪动效果的方法
2016/04/20 Javascript
Node.js的Koa框架上手及MySQL操作指南
2016/06/13 Javascript
Javascript中arguments对象的详解与使用方法
2016/10/04 Javascript
Js自动截取字符串长度,添加省略号(……)的实现方法
2017/03/06 Javascript
nodejs中安装ghost出错的原因及解决方法
2017/10/23 NodeJs
Node.js中环境变量process.env的一些事详解
2017/10/26 Javascript
小程序实现搜索框功能
2020/03/26 Javascript
JavaScript组合模式---引入案例分析
2020/05/23 Javascript
vue自定义组件(通过Vue.use()来使用)即install的用法说明
2020/08/11 Javascript
利用打码兔和超人打码自封装的打码类分享
2014/03/16 Python
Python实例分享:快速查找出被挂马的文件
2014/06/08 Python
Pandas 合并多个Dataframe(merge,concat)的方法
2018/06/08 Python
使用Python实现微信提醒备忘录功能
2018/12/04 Python
python的常见矩阵运算(小结)
2019/08/07 Python
python opencv 检测移动物体并截图保存实例
2020/03/10 Python
Tensorflow--取tensorf指定列的操作方式
2020/06/30 Python
python 密码学示例——理解哈希(Hash)算法
2020/09/21 Python
详解移动端html5页面长按实现高亮全选文本内容的兼容解决方案
2016/12/03 HTML / CSS
您的网上新华书店:文轩网
2016/08/24 全球购物
介绍一下SQL Server里面的索引视图
2016/07/31 面试题
财务部副经理岗位职责
2014/03/14 职场文书
党的群众路线教育实践活动对照检查材料范文
2014/09/24 职场文书
2016年教师师德师风承诺书
2016/03/25 职场文书
大学生创业计划书常用模板
2019/08/07 职场文书
Redis遍历所有key的两个命令(KEYS 和 SCAN)
2021/04/12 Redis