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
php 中文字符入库或显示乱码问题的解决方法
Apr 12 PHP
php下删除一篇文章生成的多个静态页面
Aug 08 PHP
php自定义函数之递归删除文件及目录
Aug 08 PHP
PHP下利用header()函数设置浏览器缓存的代码
Sep 01 PHP
PHP判断搜索引擎蜘蛛并自动记忆到文件的代码
Feb 04 PHP
解析PHP中的正则表达式以及模式匹配
Jun 19 PHP
PHP mysql与mysqli事务使用说明 分享
Aug 17 PHP
php实现的mongodb操作类实例
Apr 03 PHP
阿里对象存储OSS在laravel框架中的使用方法
Oct 13 PHP
在Laravel 的 Blade 模版中实现定义变量
Oct 14 PHP
基于PHP+mysql实现新闻发布系统的开发
Aug 06 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
PHP下打开URL地址的几种方法小结
2010/05/16 PHP
一个php短网址的生成代码(仿微博短网址)
2014/05/07 PHP
一个图片地址分解程序(用于PHP小偷程序)
2014/08/23 PHP
Smarty实现页面静态化(生成HTML)的方法
2016/05/23 PHP
js调用百度地图及调用百度地图的搜索功能
2015/09/07 Javascript
JS验证图片格式和大小并预览的简单实例
2016/10/11 Javascript
Angular学习笔记之angular的$filter服务浅析
2016/11/12 Javascript
js推箱子小游戏步骤代码解析
2018/01/10 Javascript
angularJS实现动态添加,删除div方法
2018/02/27 Javascript
JS获取月的第几周和年的第几周实例代码
2018/12/05 Javascript
layui 解决富文本框form表单提交为空的问题
2019/10/26 Javascript
vue使用一些外部插件及样式的配置代码
2019/11/18 Javascript
JS动态显示倒计时效果
2019/12/12 Javascript
Vue select 绑定动态变量的实例讲解
2020/10/22 Javascript
Python使用metaclass实现Singleton模式的方法
2015/05/05 Python
在SAE上部署Python的Django框架的一些问题汇总
2015/05/30 Python
详解Python中的Cookie模块使用
2015/07/06 Python
在Python的Django框架中使用通用视图的方法
2015/07/21 Python
Python生成器以及应用实例解析
2018/02/08 Python
利用Python将数值型特征进行离散化操作的方法
2018/11/06 Python
Python二维数组实现求出3*3矩阵对角线元素的和示例
2019/11/29 Python
python GUI库图形界面开发之PyQt5动态(可拖动控件大小)布局控件QSplitter详细使用方法与实例
2020/03/06 Python
Python requests模块session代码实例
2020/04/14 Python
python操作微信自动发消息的实现(微信聊天机器人)
2020/07/14 Python
墨尔本复古时尚品牌:Dangerfield
2018/12/12 全球购物
What's the difference between an interface and abstract class? (接口与抽象类有什么区别)
2012/10/29 面试题
学校后勤岗位职责
2014/02/19 职场文书
丧事主持词大全
2014/04/02 职场文书
房屋转让协议书
2014/04/11 职场文书
作风整顿剖析材料
2014/09/30 职场文书
群众路线教育实践活动调研报告
2014/11/03 职场文书
企业财务管理制度范本
2015/08/04 职场文书
几款流行的HTML5 UI框架比较(小结)
2021/04/08 HTML / CSS
使用springboot暴露oracle数据接口的问题
2021/05/07 Oracle
python实现简单聊天功能
2021/07/07 Python
python人工智能human learn绘图可创建机器学习模型
2021/11/23 Python