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 相关文章推荐
MayFish PHP的MVC架构的开发框架
Aug 13 PHP
PHP编程最快明白(第一讲 软件环境和准备工作)
Oct 25 PHP
PHP中SESSION使用中的一点经验总结
Mar 30 PHP
php中将汉字转换成拼音的函数代码
Sep 08 PHP
PHP设计模式之解释器模式的深入解析
Jun 13 PHP
php连接Access数据库错误及解决方法
Jun 20 PHP
关于php 接口问题(php接口主要也就是运用curl,curl函数)
Jul 01 PHP
自己写的php curl库实现整站克隆功能
Feb 12 PHP
php随机显示指定文件夹下图片的方法
Jul 13 PHP
php 使用curl模拟登录人人(校内)网的简单实例
Jun 06 PHP
php实现评论回复删除功能
May 23 PHP
PHP基于imagick扩展实现合成图片的两种方法【附imagick扩展下载】
Nov 14 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
php中explode与split的区别介绍
2012/10/03 PHP
PHP字符串的编码问题的详细介绍
2013/04/27 PHP
在PHP中设置、使用、删除Cookie的解决方法
2013/05/06 PHP
PHP 下载文件时自动添加bom头的方法实例
2014/01/10 PHP
ThinkPHP采用原生query实现关联查询left join实例
2014/12/02 PHP
php实现监控varnish缓存服务器的状态
2014/12/30 PHP
PHP语法小结之基础和变量
2015/11/22 PHP
PHP基于mssql扩展远程连接MSSQL的简单实现方法
2016/10/08 PHP
javascript引用对象的方法代码
2007/08/13 Javascript
jquery.artwl.thickbox.js  一个非常简单好用的jQuery弹出层插件
2012/03/01 Javascript
javascript中常用编程知识
2013/04/08 Javascript
javascript数组操作(创建、元素删除、数组的拷贝)
2014/04/07 Javascript
JS实现鼠标点击展开或隐藏表格行的方法
2015/03/03 Javascript
HTML5使用DeviceOrientation实现摇一摇功能
2015/06/05 Javascript
Nodejs从有门道无门菜鸟起飞必看教程
2016/07/20 NodeJs
使用bootstrapValidator插件进行动态添加表单元素并校验
2016/09/28 Javascript
JS正则RegExp.test()使用注意事项(不具有重复性)
2016/12/28 Javascript
jQuery实现复制到粘贴板功能
2017/02/11 Javascript
详解angularjs中如何实现控制器和指令之间交互
2017/05/31 Javascript
jQuery绑定事件方法及区别(bind,click,on,live,one)
2017/08/14 jQuery
Angular实现的自定义模糊查询、排序及三角箭头标注功能示例
2017/12/28 Javascript
JavaScript实现删除数组重复元素的5种常用高效算法总结
2018/01/18 Javascript
浅谈React中的元素、组件、实例和节点
2018/02/27 Javascript
从0到1构建vueSSR项目之node以及vue-cli3的配置
2019/03/07 Javascript
vue2 拖动排序 vuedraggable组件的实现
2019/08/08 Javascript
Vue el-autocomplete远程搜索下拉框并实现自动填充功能(推荐)
2019/10/25 Javascript
vue中可编辑树状表格的实现代码
2020/10/31 Javascript
[00:35]DOTA2上海特级锦标赛 MVP.Phx战队宣传片
2016/03/04 DOTA
Python 经典算法100及解析(小结)
2019/09/13 Python
python对数组进行排序,并输出排序后对应的索引值方式
2020/02/28 Python
Python %r和%s区别代码实例解析
2020/04/03 Python
python golang中grpc 使用示例代码详解
2020/06/03 Python
John Varvatos官方网站:设计师男士时装
2017/02/08 全球购物
伦敦剧院门票:From The Box Office
2018/06/30 全球购物
委托书格式
2014/08/01 职场文书
上市公司财务总监岗位职责
2015/04/03 职场文书