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
Windows Apache2.2.11及Php5.2.9-1的安装与配置方法
Jun 08 PHP
PHP HTML代码串 截取实现代码
Jun 29 PHP
浅析php与数据库代码开发规范
Aug 08 PHP
PHP的PSR规范中文版
Sep 28 PHP
yii上传文件或图片实例
Apr 01 PHP
PHP的Yii框架中移除组件所绑定的行为的方法
Mar 18 PHP
php批量删除操作代码分享
Feb 26 PHP
对于Laravel 5.5核心架构的深入理解
Feb 22 PHP
php5.x禁用eval的操作方法
Oct 19 PHP
php实现银联商务公众号+服务窗支付的示例代码
Oct 12 PHP
Git命令之分支详解
Mar 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面向对象的使用教程 简单数据库连接
2006/11/25 PHP
PHP中new static() 和 new self() 的区别介绍
2015/01/09 PHP
PHP SPL标准库之数据结构栈(SplStack)介绍
2015/05/12 PHP
ThinkPHP框架实现的邮箱激活功能示例
2018/06/15 PHP
Aster vs KG BO3 第二场2.18
2021/03/10 DOTA
firefox中JS读取XML文件
2006/12/21 Javascript
修改file按钮的默认样式实现代码
2013/04/23 Javascript
javascript自定义startWith()和endWith()的两种方法
2013/11/11 Javascript
JavaScript控制按钮可用或不可用的方法
2015/04/03 Javascript
详解JavaScript表单验证(E-mail 验证)
2016/03/31 Javascript
再次谈论React.js实现原生js拖拽效果引起的一系列问题
2016/04/03 Javascript
nodeJs链接Mysql做增删改查的简单操作
2017/02/04 NodeJs
js常用DOM方法详解
2017/02/04 Javascript
jquery点赞功能实现代码 点个赞吧!
2020/05/29 jQuery
jQuery选取所有复选框被选中的值并用Ajax异步提交数据的实例
2017/08/04 jQuery
js中apply与call简单用法详解
2017/11/06 Javascript
webpack+react+antd脚手架优化的方法
2018/04/02 Javascript
JavaScript常见鼠标事件与用法分析
2019/01/03 Javascript
JavaScript 性能提升之路(推荐)
2019/04/10 Javascript
Angular 中使用 FineReport不显示报表直接打印预览
2019/08/21 Javascript
JS数组的高级使用方法示例小结
2020/03/14 Javascript
JS原型prototype和__proto__用法实例分析
2020/03/14 Javascript
vue 使用localstorage实现面包屑的操作
2020/11/16 Javascript
Python3中的真除和Floor除法用法分析
2016/03/16 Python
解决django前后端分离csrf验证的问题
2019/02/03 Python
Python数据正态性检验实现过程
2020/04/18 Python
python使用smtplib模块发送邮件
2020/12/17 Python
阿迪达斯芬兰官方网站:adidas芬兰
2017/01/30 全球购物
澳大利亚Rockwear官网:女子瑜伽、健身和运动服
2021/01/26 全球购物
学前教育教师求职自荐信
2013/09/22 职场文书
大学生职业生涯规划范文
2013/12/31 职场文书
艺术设计专业个人求职信
2014/04/10 职场文书
2015大学迎新晚会策划书
2015/07/16 职场文书
工作感想范文
2015/08/07 职场文书
Python matplotlib绘制条形统计图 处理多个实验多组观测值
2022/04/21 Python
SpringBoot 集成短信和邮件 以阿里云短信服务为例
2022/04/22 Java/Android