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中for循环语句的几种变型
Nov 26 PHP
PHP Pear 安装及使用
Mar 19 PHP
php使用curl访问https示例分享
Jan 17 PHP
php实现singleton()单例模式实例
Nov 06 PHP
mysql_connect localhost和127.0.0.1的区别(网络层阐述)
Mar 26 PHP
php检查是否是ajax请求的方法
Apr 16 PHP
HTML中嵌入PHP的简单方法
Feb 16 PHP
LaravelS通过Swoole加速Laravel/Lumen详解
Mar 02 PHP
laravel 5.4 + vue + vux + element的环境搭配过程介绍
Apr 26 PHP
php使用array_chunk函数将一个数组分割成多个数组
Dec 05 PHP
thinkPHP5框架路由常用知识点汇总
Sep 15 PHP
php文件后缀不强制为.php的实操方法
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
php 删除cookie方法详解
2014/12/01 PHP
浅谈PHP SHA1withRSA加密生成签名及验签
2019/03/18 PHP
实用javaScript技术-屏蔽类
2006/08/15 Javascript
js右键菜单效果代码
2007/07/21 Javascript
JavaScript 基础问答三
2008/12/03 Javascript
基于jquery创建的一个图片、视频缓冲的效果样式插件
2012/08/28 Javascript
JS实现两个大数(整数)相乘
2014/04/28 Javascript
jQuery 中$(this).index与$.each的使用指南
2014/11/20 Javascript
浅析JavaScript中浏览器的兼容问题
2016/04/19 Javascript
jQuery代码实现实时获取时间
2017/01/29 Javascript
jQuery图片轮播功能实例代码
2017/01/29 Javascript
jQuery实现的滑块滑动导航效果示例
2018/06/04 jQuery
微信小程序内拖动图片实现移动、放大、旋转的方法
2018/09/04 Javascript
RxJS的入门指引和初步应用
2019/06/15 Javascript
Node Express用法详解【安装、使用、路由、中间件、模板引擎等】
2020/05/13 Javascript
python中的hashlib和base64加密模块使用实例
2014/09/02 Python
Python的Django框架中URLconf相关的一些技巧整理
2015/07/18 Python
浅谈对yield的初步理解
2017/05/29 Python
Python中表达式x += y和x = x+y 的区别详解
2017/06/20 Python
用python实现的线程池实例代码
2018/01/06 Python
使用python爬虫获取黄金价格的核心代码
2018/06/13 Python
Flask实现跨域请求的处理方法
2018/09/27 Python
使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件及出现问题解决方法
2019/09/06 Python
numpy.linalg.eig() 计算矩阵特征向量方式
2019/11/29 Python
Python-openpyxl表格读取写入的案例详解
2020/11/02 Python
CSS3按钮鼠标悬浮实现光圈效果源码
2016/09/11 HTML / CSS
HTML5中使用json对象的实例代码
2018/09/10 HTML / CSS
澳大利亚吉他在线:Artist Guitars
2017/03/30 全球购物
路德维希•贝克(LUDWIG BECK)中文官网:德国大型美妆百货
2020/09/19 全球购物
随机分配座位,共50个学生,使学号相邻的同学座位不能相邻
2014/01/18 面试题
网页设计个人找工作求职信
2013/11/28 职场文书
学生自我鉴定
2013/12/18 职场文书
装修五一活动策划案
2014/01/23 职场文书
2014年廉洁自律承诺书
2014/05/26 职场文书
数学教育专业求职信
2014/07/22 职场文书
民主生活会主持词
2015/07/01 职场文书