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 相关文章推荐
set_include_path在win和linux下的区别
Jan 10 PHP
php中定义网站根目录的常用方法
Aug 08 PHP
shopex中集成的站长统计功能的代码简单分析
Aug 11 PHP
php去除重复字的实现代码
Sep 16 PHP
php中mysql模块部分功能的简单封装
Sep 30 PHP
for循环连续求和、九九乘法表代码
Feb 20 PHP
简单解析PHP程序的运行流程
Jun 23 PHP
Apache无法自动跳转却显示目录的解决方法
Nov 30 PHP
php实现替换手机号中间数字为*号及隐藏IP最后几位的方法
Nov 16 PHP
详解php curl带有csrf-token验证模拟提交方法
Apr 18 PHP
php使用fullcalendar日历插件详解
Mar 06 PHP
PHP 模拟登陆功能实例详解
Sep 10 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 fread()使用技巧
2010/01/22 PHP
js限制checkbox勾选的个数以及php获取多个checkbbox的方法深入解析
2013/07/18 PHP
检测codeigniter脚本消耗内存情况的方法
2015/03/21 PHP
php需登录的文件上传管理系统
2020/03/21 PHP
JavaScript数据结构与算法之栈详解
2015/03/12 Javascript
JavaScript生成SQL查询表单的方法
2015/08/13 Javascript
js实现仿qq消息的弹出窗效果
2016/01/06 Javascript
jQuery组件easyui基本布局实现代码
2016/08/25 Javascript
bootstrap快速制作后台界面
2016/12/05 Javascript
深入理解jquery中的each用法
2016/12/14 Javascript
微信小程序开发的四十个技术窍门总结(推荐)
2017/01/23 Javascript
基于vue实现分页效果
2017/11/06 Javascript
AngularJs点击状态值改变背景色的实例
2017/12/18 Javascript
如何从0开始用node写一个自己的命令行程序
2018/12/29 Javascript
layer.alert自定义关闭回调事件的方法
2019/09/27 Javascript
微信小程序文章详情功能完整实例
2020/06/03 Javascript
vue封装自定义指令之动态显示title操作(溢出显示,不溢出不显示)
2020/11/12 Javascript
[00:35]DOTA2上海特级锦标赛 MVP.Phx战队宣传片
2016/03/04 DOTA
[01:03:33]Alliance vs TNC 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
python自定义函数实现一个数的三次方计算方法
2019/01/20 Python
python如何读取bin文件并下发串口
2019/07/05 Python
python的range和linspace使用详解
2019/11/27 Python
Python的形参和实参使用方式
2019/12/24 Python
tensorflow 自定义损失函数示例代码
2020/02/05 Python
浅谈python输出列表元素的所有排列形式
2020/02/26 Python
详解HTML5布局和HTML5标签
2020/10/26 HTML / CSS
2019史上最全Database工程师题库
2015/12/06 面试题
服装设计师职业生涯规划范文
2014/02/28 职场文书
预备党员转正考核材料
2014/06/03 职场文书
个人租房协议书样本
2014/10/01 职场文书
党的群众路线批评与自我批评范文
2014/10/16 职场文书
2014大学辅导员工作总结
2014/12/02 职场文书
员工工作表现自我评价
2015/03/06 职场文书
小学生反邪教心得体会
2016/01/15 职场文书
MySQL命令行操作时的编码问题详解
2021/04/14 MySQL
golang中的空slice案例
2021/04/27 Golang