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程序员最常犯的11个MySQL错误小结
Nov 20 PHP
探讨PHP删除文件夹的三种方法
Jun 09 PHP
php 常用算法和时间复杂度
Jul 01 PHP
利用浏览器的Javascript控制台调试PHP程序
Jan 08 PHP
PHP 利用Mail_MimeDecode类提取邮件信息示例
Jan 26 PHP
PHP实现的连贯操作、链式操作实例
Jul 08 PHP
php生成Android客户端扫描可登录的二维码
May 13 PHP
PHP中使用foreach()遍历二维数组的简单实例
Jun 13 PHP
jquery不支持toggle()高(新)版本的问题解决
Sep 24 PHP
[原创]php使用strpos判断字符串中数字类型子字符串出错的解决方法
Apr 01 PHP
laravel请求参数校验方法
Oct 10 PHP
php使用pthreads v3多线程实现抓取新浪新闻信息操作示例
Feb 21 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
收音机鉴频器对声音的影响和频偏分析
2021/03/02 无线电
PHP下10件你也许并不了解的事情
2008/09/11 PHP
PHP UTF8编码内的繁简转换类
2009/07/20 PHP
PHP 压缩文件夹的类代码
2009/11/05 PHP
php expects parameter 1 to be resource, array given 错误
2011/03/23 PHP
PHP实现负载均衡session共享redis缓存操作示例
2018/08/22 PHP
Laravel 中使用简单的方法跟踪用户是否在线(推荐)
2019/10/30 PHP
jquery checkbox,radio是否选中的判断代码
2010/03/20 Javascript
js获取html页面节点方法(递归方式)
2013/12/13 Javascript
JavaScript将取代AppleScript?
2014/09/18 Javascript
jQuery实现数字加减效果汇总
2014/12/16 Javascript
深入解析JavaScript框架Backbone.js中的事件机制
2016/02/14 Javascript
Bootstrap打造一个左侧折叠菜单的系统模板(一)
2016/05/17 Javascript
浅谈jquery fullpage 插件增加头部和版权的方法
2018/03/20 jQuery
JS监听事件的叠加和移除功能
2018/11/19 Javascript
使用vue-router切换页面时实现设置过渡动画
2019/10/31 Javascript
js Math数学简单使用操作示例
2020/03/13 Javascript
使用konva和vue-konva库实现拖拽滑块验证功能
2020/04/27 Javascript
vuecli3.x中轻松4步带你使用tinymce的步骤
2020/06/25 Javascript
Openlayers显示瓦片网格信息的方法
2020/09/28 Javascript
[01:00:59]VP VS VG Supermajor小组赛胜者组第二轮 BO3第二场 6.2
2018/06/03 DOTA
[47:31]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第一场 12.12
2020/12/16 DOTA
Python内置函数Type()函数一个有趣的用法
2015/02/18 Python
Python使用ntplib库同步校准当地时间的方法
2016/07/02 Python
Django日志模块logging的配置详解
2017/02/14 Python
python 递归深度优先搜索与广度优先搜索算法模拟实现
2018/10/22 Python
python在新的图片窗口显示图片(图像)的方法
2019/07/11 Python
Django使用uwsgi部署时的配置以及django日志文件的处理方法
2019/08/30 Python
python 递归调用返回None的问题及解决方法
2020/03/16 Python
详细分析Python垃圾回收机制
2020/07/01 Python
python中lower函数实现方法及用法讲解
2020/12/23 Python
家长给孩子的表扬信
2014/01/17 职场文书
新学期开学寄语
2014/01/18 职场文书
售后服务经理岗位职责范本
2014/02/22 职场文书
2014党员学习《反腐倡廉警示教育读本》思想汇报
2014/09/13 职场文书
赞助商致辞
2015/07/30 职场文书