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空间不支持socket但支持curl时recaptcha的用法
Nov 07 PHP
PHP获取搜索引擎关键字来源的函数(支持百度和谷歌等搜索引擎)
Oct 03 PHP
深入探讨<br />和 \r\n两者有什么区别??
Jun 05 PHP
探讨如何在PHP开启gzip页面压缩实例
Jun 09 PHP
解析PHP获取当前网址及域名的实现代码
Jun 23 PHP
Yii2使用小技巧之通过 Composer 添加 FontAwesome 字体资源
Jun 22 PHP
ThinkPHP空模块和空操作详解
Jun 30 PHP
PHP积分兑换接口实例
Feb 09 PHP
PHP日期函数date格式化UNIX时间的方法
Mar 19 PHP
php实现专业获取网站SEO信息类实例
Apr 02 PHP
php 伪造HTTP_REFERER页面URL来源的三种方法
Sep 22 PHP
Laravel框架使用Seeder实现自动填充数据功能
Jun 13 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带密码功能并下载远程文件保存本地指定目录 修改加强版
2010/05/16 PHP
PHP文件缓存内容保存格式实例分析
2014/08/20 PHP
PHP单例模式简单用法示例
2017/06/23 PHP
PHP面向对象之里氏替换原则简单示例
2018/04/08 PHP
YII分模块加载路由的实现方法
2018/10/01 PHP
给网站上的广告“加速”显示的方法
2007/04/08 Javascript
javawscript 三级菜单的实现原理
2009/07/01 Javascript
自己写的Javascript计算时间差函数
2013/10/28 Javascript
jquery交替变换颜色的三种方法 实例代码
2013/11/19 Javascript
30个经典的jQuery代码开发技巧
2014/12/15 Javascript
Node.js中child_process实现多进程
2015/02/03 Javascript
JavaScript实现仿网易通行证表单验证
2015/05/25 Javascript
js获取滚动距离的方法
2015/05/30 Javascript
js制作带有遮罩弹出层实现登录注册表单特效代码分享
2015/09/05 Javascript
jsonp跨域请求实现示例
2017/03/13 Javascript
angular.js+node.js实现下载图片处理详解
2017/03/31 Javascript
Angular 2父子组件数据传递之局部变量获取子组件其他成员
2017/07/04 Javascript
Angularjs中的验证input输入框只能输入数字和小数点的写法(推荐)
2017/08/16 Javascript
Vue中父子组件通讯之todolist组件功能开发
2018/05/21 Javascript
webpack之引入图片的实现及问题
2018/10/08 Javascript
深入了解JavaScript 的 WebAssembly
2019/06/15 Javascript
Vue实现Header渐隐渐现效果的实例代码
2020/11/05 Javascript
python局部赋值的规则
2013/03/07 Python
讲解Python的Scrapy爬虫框架使用代理进行采集的方法
2016/02/18 Python
python Django批量导入不重复数据
2016/03/25 Python
Android 兼容性问题:java.lang.UnsupportedOperationException解决办法
2017/03/19 Python
Django 允许局域网中的机器访问你的主机操作
2020/05/13 Python
python使用布隆过滤器的实现示例
2020/08/20 Python
巴黎卡诗加拿大官网:Kérastase加拿大
2018/11/12 全球购物
毕业生自荐信
2013/12/14 职场文书
马云的职业生涯规划之路
2014/01/01 职场文书
《我要的是葫芦》教学反思
2014/02/23 职场文书
南京大屠杀观后感
2015/06/02 职场文书
技能培训通讯稿
2015/07/18 职场文书
Java图书管理系统,课程设计必用(源码+文档)
2021/06/30 Java/Android
Python实现视频自动打码的示例代码
2022/04/08 Python