PHP学习 变量使用总结


Posted in PHP onMarch 24, 2011
1.定义常量define("CONSTANT", "Hello world.");
常量只能包含标量数据(boolean,integer,float 和 string)。
调用常量时,只需要简单的用名称取得常量的值,而不能加“$”符号,如:echo CONSTANT;
注: 常量和(全局)变量在不同的名字空间中。这意味着例如 TRUE 和 $TRUE 是不同的。

2.普通变量$a = "hello";

3.可变变量(使用两个美元符号($))
$$a = "world";
两个变量都被定义了:
$a 的内容是“hello”并且 $hello 的内容是“world”。
因此,可以表述为:
echo "$a ${$a}";或者  echo "$a $hello";它们都会输出:hello world
要将可变变量用于数组,必须解决一个模棱两可的问题。这就是当写下 $$a[1] 时,解析器需要知道是想要 $a[1] 作为一个变量呢,还是想要 $$a 作为一个变量并取出该变量中索引为 [1] 的值。解决此问题的语法是,对第一种情况用 ${$a[1]},对第二种情况用 ${$a}[1]。

4.静态变量
在函数内部static $a = 0;
注意:声明中用表达式的结果对其赋值会导致解析错误如static  $a =3+3;(error)
静态变量仅在局部函数域中存在(函数内部),函数执行完之后,变量值不会丢失,可用于递归调用

5.全局变量
在函数体内定义的global变量,函数体外可以使用,在函数体外定义的global变量不能在函数体内使用,在全局范围内访问变量可以用特殊的 PHP 自定义 $GLOBALS 数组:
如:$GLOBALS["b"] = $GLOBALS["a"] + $GLOBALS["b"];
在一个函数域内用 global 语句导入的一个真正的全局变量实际上是建立了一个到全局变量的引用
global $obj;
注:对于变量的 static 和 global 定义是以 应用 的方式实现的

6.给变量赋值:传地址赋值(简单引用):
$bar = &$foo;  //加&符号到将要赋值的变量前
改动新的变量将影响到原始变量,这种赋值操作更加快速
注意:只有命名变量才可以传地址赋值
注意:如果
$bar = &$a;
$bar = &$foo;
改变$bar的值只能改变变量foo的值,而不改变a的值(引用改变了)

7.PHP 超全局变量$GLOBALS : 包含一个引用指向每个当前脚本的全局范围内有效的变量。该数组的键标为全局变量的 名称。从 PHP 3 开始存在 $GLOBALS 数组。
$_SERVER : 变量由 Web 服务器设定或者直接与当前脚本的执行环境相关联。类似于旧数组 $HTTP_SERVER_VARS 数组(依然有效,但反对使用)。
$_GET :    经由 HTTP GET 方法提交至脚本的变量。
$_POST :   经由 HTTP POST 方法提交至脚本的变量。
$_COOKIE : 经由 HTTP Cookies 方法提交至脚本的变量。
$_FILES :  经由 HTTP POST 文件上传而提交至脚本的变量。
文件上传表单中要有 enctype="multipart/form-data"
$_ENV :    执行环境提交至脚本的变量。
$_REQUEST :经由 GET,POST 和 COOKIE 机制提交至脚本的变量,因此该数组并不值得信任。所有包含在该数组中的变量的存在与否以及变量的顺序均按照 php.ini 中的 variables_order 配置指示来定义。该数组没有直接模拟 PHP 4.1.0 的早期版本。参见 import_request_variables()。
注意:      自 PHP 4.3.0 起,$_FILES 中的文件信息不再存在于 $_REQUEST 中。
$_SESSION :当前注册给脚本会话的变量。

PHP 相关文章推荐
PHP字符串 ==比较运算符的副作用
Oct 21 PHP
php遍历目录viewDir函数
Dec 15 PHP
gd库图片下载类实现下载网页所有图片的php代码
Aug 20 PHP
php使用百度天气接口示例
Apr 22 PHP
Windows下的PHP 5.3.x安装 Zend Guard Loader教程
Sep 06 PHP
php冒泡排序与快速排序实例详解
Dec 07 PHP
php中array_column函数简单实现方法
Jul 11 PHP
PHP基于GD库的图像处理方法小结
Sep 27 PHP
php 中奖概率算法实现代码
Jan 25 PHP
ubutu 16.04环境下,PHP与mysql数据库,网页登录验证实例讲解
Jul 20 PHP
PDO::beginTransaction讲解
Jan 27 PHP
Thinkphp 在api开发中异常返回依然是html的解决方式
Oct 16 PHP
优化php效率,提高php性能的一些方法
Mar 24 #PHP
php 代码优化之经典示例
Mar 24 #PHP
php模拟asp中的XmlHttpRequest实现http请求的代码
Mar 24 #PHP
php邮件发送,php发送邮件的类
Mar 24 #PHP
php 数组排序 array_multisort与uasort的区别
Mar 24 #PHP
一个基于PDO的数据库操作类
Mar 24 #PHP
Zend Studio (eclipse)使用速度优化方法
Mar 23 #PHP
You might like
理解PHP5中static和const关键字的区别
2007/03/19 PHP
php下关于中英数字混排的字符串分割问题
2010/04/06 PHP
通过5个php实例细致说明传值与传引用的区别
2012/08/08 PHP
destoon后台网站设置变成空白的解决方法
2014/06/21 PHP
php通过递归方式复制目录和子目录的方法
2015/03/13 PHP
php通过文件头判断格式的方法
2016/05/28 PHP
CodeIgniter框架数据库基本操作示例
2018/05/24 PHP
JavaScript国旗变换效果代码
2008/08/13 Javascript
映彩衣的js随笔(js图片切换效果)
2011/07/31 Javascript
createElement与createDocumentFragment的点点区别小结
2011/12/19 Javascript
ASP.NET jQuery 实例7 通过jQuery来获取DropDownList的Text/Value属性值
2012/02/03 Javascript
表头固定(利用jquery实现原理介绍)
2012/11/08 Javascript
js弹出div并显示遮罩层
2014/02/12 Javascript
JavaScript将Web页面内容导出到Word及Excel的方法
2015/02/13 Javascript
JavaScript设计模式学习之“类式继承”
2015/03/12 Javascript
Nodejs Express4.x开发框架随手笔记
2015/11/23 NodeJs
将jquery.qqFace.js表情转换成微信的字符码
2017/12/01 jQuery
详解Vue单元测试Karma+Mocha学习笔记
2018/01/31 Javascript
微信小程序关键字变色实现代码实例
2019/12/13 Javascript
解决每次打开pycharm直接进入项目的问题
2018/10/28 Python
使用Python开发SQLite代理服务器的方法
2018/12/07 Python
对python中词典的values值的修改或新增KEY详解
2019/01/20 Python
Python大数据之使用lxml库解析html网页文件示例
2019/11/16 Python
python中有关时间日期格式转换问题
2019/12/25 Python
python3读取csv文件任意行列代码实例
2020/01/13 Python
Python3连接Mysql8.0遇到的问题及处理步骤
2020/02/17 Python
python3.7调试的实例方法
2020/07/21 Python
Python变量及数据类型用法原理汇总
2020/08/06 Python
python从PDF中提取数据的示例
2020/10/30 Python
阿迪达斯印尼官方网站:adidas印尼
2020/02/10 全球购物
linux面试相关问题
2013/04/28 面试题
体操比赛口号
2014/06/10 职场文书
2014年勤工助学工作总结
2014/11/24 职场文书
计生个人工作总结
2015/02/28 职场文书
小程序wx.getUserProfile接口的具体使用
2021/06/02 Javascript
SpringBoot2零基础到精通之数据库专项精讲
2022/03/22 Java/Android