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 相关文章推荐
Extended CHM PHP 语法手册之 DIY
Oct 09 PHP
PHP4和PHP5共存于一系统
Nov 17 PHP
用windows下编译过的eAccelerator for PHP 5.1.6实现php加速的使用方法
Sep 30 PHP
php获取某个目录大小的代码
Sep 10 PHP
PHP开发中的错误收集,不定期更新。
Feb 03 PHP
基于php缓存的详解
May 15 PHP
php采用curl实现伪造IP来源的方法
Nov 21 PHP
Yii2基于Ajax自动获取表单数据的方法
Aug 10 PHP
详解PHP安装mysql.so扩展的方法
Dec 31 PHP
thinkPHP简单调用函数与类库的方法
Mar 15 PHP
自制PHP框架之设计模式
May 07 PHP
浅谈Laravel核心解读之Console内核
Dec 02 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在页面中调用fckeditor编辑器的方法
2011/06/10 PHP
解析php中array_merge与array+array的区别
2013/06/21 PHP
IIS6.0中配置php服务全过程解析
2013/08/07 PHP
php实现把数组按指定的个数分隔
2014/02/17 PHP
Yii2中事务的使用实例代码详解
2016/09/07 PHP
php多进程中的阻塞与非阻塞操作实例分析
2020/03/04 PHP
javascript 可以拖动的DIV(二)
2009/06/26 Javascript
仅IE9/10同时支持script元素的onload和onreadystatechange事件分析
2011/04/27 Javascript
Mac/Windows下如何安装Node.js
2013/11/22 Javascript
jQuery aminate方法定位到页面具体位置
2013/12/26 Javascript
使用javascript获取页面名称
2014/12/23 Javascript
JavaScript中常用的六种互动方法示例
2015/03/13 Javascript
js设置document.domain实现跨域的注意点分析
2015/05/21 Javascript
javascript中window.open在原来的窗口中打开新的窗口(不同名)
2015/11/15 Javascript
Es6 写的文件import 起来解决方案详解
2016/12/13 Javascript
Javascript面试经典套路reduce函数查重
2017/03/23 Javascript
修改UA在PC中访问只能在微信中打开的链接方法
2017/11/27 Javascript
jquery ajax加载数据前台渲染方式 不用for遍历的方法
2018/08/09 jQuery
vscode下vue项目中eslint的使用方法
2019/01/13 Javascript
layer弹出层取消遮罩的方法
2019/09/25 Javascript
[01:15:29]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#2Secret VS EG第三局
2016/03/04 DOTA
[47:03]完美世界DOTA2联赛PWL S3 access vs LBZS 第一场 12.20
2020/12/23 DOTA
Python写的PHPMyAdmin暴力破解工具代码
2014/08/06 Python
Python实现PS滤镜特效Marble Filter玻璃条纹扭曲效果示例
2018/01/29 Python
Django项目中添加ldap登陆认证功能的实现
2019/04/04 Python
Python3使用PySynth制作音乐的方法
2019/09/09 Python
Python tornado上传文件的功能
2020/03/26 Python
CentOS 7如何实现定时执行python脚本
2020/06/24 Python
基于canvas使用贝塞尔曲线平滑拟合折线段的方法
2018/01/10 HTML / CSS
怎么写自荐书范文
2014/02/12 职场文书
银行委托书范本
2014/04/04 职场文书
初中作文评语
2014/12/25 职场文书
毕业生爱心捐书倡议书
2015/04/27 职场文书
水浒传读书笔记
2015/06/25 职场文书
2016年十一促销广告语
2016/01/28 职场文书
靠谱的活动总结
2019/04/16 职场文书