浅析php中常量,变量的作用域和生存周期


Posted in PHP onAugust 10, 2013

在PHP脚本中变量主要有:内置超级全局变量,一般的变量,常量,全局变量,静态变量等等,我们在使用它们的时候除了要正确地知道它们的语法以外,更重要的是,我们要知道它们在本质上的区别与联系—即它们的作用域的问题。

1.内置超级全局变量可以在脚本的任何地方使用和可见。即是说,如果我们在一个PHP页面中改变了其中的一个值,那么在其他PHP页面中使用时,它的值也会发生改变。

2.常量一旦被声明将可以在全局可见,也就是说,它们可以函数内外使用,但是这仅仅限于一个页面之中(包含我们通过include和include_once)包含进来的PHP脚本,但是在其他的页面之中就不能使用了。

3.在一个脚本中声明的全局变量在整个脚本中是可见的,但不是在函数内部,在函数内部的变量如果与全局变量名称相同,以函数内部的变量为准。

4.函数内部使用的变量声明为全局变量时,其名称要与全局变量的名称一致,在这样的情况下,我们就可以在函数中使用函数外部的全局变量了,这样就可以避免上一种因为函数内部的变量与外部的全局变量名称相同而覆盖了外部变量这样的情况。

5.在函数内部创建并声明为静态的变量无法在函数外部可见,但是可以在函数的多次执行过程中保持该值,最常见的情况就是在函数的递归执行的过程之中。

6.在函数内部创建的变量对函数来说是本地的,而当函数终止时,该变量也就不存在了。

超级全局变量的完整列表如下:
1.$GOBALS  所有全局变量数组
2.$_SERVER  服务器环境变量数组
3.$_POST  通过POST方法传递给该脚本的变量数组
4.$_GET  通过GET方法传递给该脚本的变量数组
5.$_COOKIE  cookie变量数组
6.$_FILES  与文件上传相关的变量数组
7.$ENV 环境变量数组
8.$_REQUEST 所有用户输入的变量数组包括$_GET $_POST $_COOKIE 所包含的输入内容
9.$_SESSION  会话变量数组

我们要注意的是:变量和常量另一个重要的差异是:常量只可以定义boolean(布尔型),integer(整型),float(浮点型) 和 string(字符串型)数据,但不能定义 resource类型的数据。

PHP 相关文章推荐
PHP调用三种数据库的方法(3)
Oct 09 PHP
php数组函数序列之array_intersect() 返回两个或多个数组的交集数组
Nov 10 PHP
PHP防CC攻击实现代码
Dec 29 PHP
php程序内部post数据的方法
Mar 31 PHP
php跨服务器访问方法小结
May 12 PHP
标准版Eclipse搭建PHP环境的详细步骤
Nov 18 PHP
Zend Framework教程之Zend_Db_Table_Row用法实例分析
Mar 21 PHP
YII2 实现多语言配置的方法分享
Jan 11 PHP
php实现文件与16进制相互转换的方法示例
Feb 16 PHP
php简单中奖算法(实例)
Aug 15 PHP
php面向对象重点知识分享
Sep 27 PHP
TP3.2框架分页相关实现方法分析
Jun 03 PHP
浅析linux下apache服务器的配置和管理
Aug 10 #PHP
本地机apache配置基于域名的虚拟主机详解
Aug 10 #PHP
php 删除目录下N分钟前创建的所有文件的实现代码
Aug 10 #PHP
php中如何判断一个网页请求是ajax请求还是普通请求
Aug 10 #PHP
php一些错误处理的方法与技巧总结
Aug 10 #PHP
Zend Studio 实用快捷键一览表(精心整理)
Aug 10 #PHP
php对csv文件的读取,写入,输出下载操作详解
Aug 10 #PHP
You might like
php 获取远程网页内容的函数
2009/09/08 PHP
一个PHP的String类代码
2010/04/20 PHP
C#静态方法与非静态方法实例分析
2014/09/22 PHP
PHP抽象类与接口的区别详解
2019/03/21 PHP
jQuery 使用手册(七)
2009/09/23 Javascript
jquery获取div距离窗口和父级dv的距离示例
2013/10/10 Javascript
下拉列表select 由左边框移动到右边示例
2013/12/04 Javascript
Chrome下ifame父窗口调用子窗口的问题示例探讨
2014/03/17 Javascript
删除javascript中注释语句的正则表达式
2014/06/11 Javascript
jQuery实现动画效果circle实例
2015/08/06 Javascript
CSS图片响应式 垂直水平居中
2015/08/14 Javascript
深入浅析JavaScript面向对象和原型函数
2016/02/06 Javascript
JavaScript中函数声明与函数表达式的区别详解
2016/08/18 Javascript
Jquery删除css属性的简单方法
2016/12/04 Javascript
在 Vue-CLI 中引入 simple-mock实现简易的 API Mock 接口数据模拟
2018/11/28 Javascript
vue-router路由模式详解(小结)
2019/08/26 Javascript
python进阶教程之函数参数的多种传递方法
2014/08/30 Python
Python中的面向对象编程详解(上)
2015/04/13 Python
python 开发的三种运行模式详细介绍
2017/01/18 Python
Python中你应该知道的一些内置函数
2017/03/31 Python
python 创建弹出式菜单的实现代码
2017/07/11 Python
ubuntu中配置pyqt4环境教程
2017/12/27 Python
python opencv pytesseract 验证码识别的实现
2020/08/28 Python
python实现图片转字符画的完整代码
2021/02/21 Python
HTML5、Select下拉框右边加图标的实现代码(增进用户体验)
2017/10/16 HTML / CSS
新西兰最大的天然保健及护肤品网站:HealthPost(直邮中国)
2021/02/13 全球购物
结婚典礼证婚词
2014/01/11 职场文书
党员2014两会学习心得体会
2014/03/17 职场文书
小学生植树节活动总结
2014/07/04 职场文书
道路运输企业安全生产责任书
2014/07/28 职场文书
2015年个人实习工作总结
2014/12/12 职场文书
万能检讨书开头与结尾怎么写
2015/02/17 职场文书
无房证明样本
2015/06/17 职场文书
安全责任协议书范本
2016/03/23 职场文书
python通配符之glob模块的使用详解
2021/04/24 Python
Python 线程池模块之多线程操作代码
2021/05/20 Python