PHP extract 将数组拆分成多个变量的函数


Posted in PHP onJune 30, 2010

extract()函数语法:
int extract( array $var_array [, int $extract_type = EXTR_OVERWRITE [, string $prefix ]] )
功能: extract()函数提取关联数组(对数字索引数组无效)每对key和value,生成以key为变量名、value为对应值的多组新变量。

<?php 
$size = "old size"; //注意最后size变量的值。 
$a = array( 
"color" => "red", 
"size" => "XXL", 
"price" => "53"); 
extract($a); 
echo "color = $color<br />"; 
echo "size = $size<br />"; 
echo "price = $price<br />"; 
?>

结果为:

color = red
size = XXL
price = 53

通过上例发现$size的值为XXL,而不是之前的”old size”,说明默认情况下当数组中的key与已有的变量冲突时,将覆盖原来的变量。

继续介绍extract函数的后两个可选参数。

第二个参数$extract_type是用来控制当发生冲突时的处理方法,可能的值为:

EXTR_OVERWRITE : 冲突时覆盖已有的变量,默认值。
EXTR_SKIP : 不覆盖已有的变量,即不在生成该key和value对的变量。
EXTR_PREFIX_SAME : 冲突时,生成的新变量名加一个前缀字符串,其值由第三个参数指定。
EXTR_PREFIX_ALL : 对所有生成的新变量名加一个前缀字符串,其值由第三个参数指定。
EXTR_PREFIX_INVALID : 对key的值换为变量名时无效时(如key第一个字符为数字,而变量名要求第一个字符不能为数字),在变量名加一个前缀字符串,其值由第三个参数指定。
EXTR_IF_EXISTS : 只取出之前已经存在的变量。
EXTR_PREFIX_IF_EXISTS : 对EXTR_IF_EXISTS取得的变量,在其变量名加一个前缀字符串,其值由第三个参数指定。
EXTR_REFS : 以引用的方式提取变量,说明提取变量的值发生改变会影响原数组的值。

注意:在变量名加前缀字符串时,新的变量名为 PREFIX_key,而不是PREFIXkey。

<?php 
$a = array( 
"color" => "red", 
"size" => "XXL", 
"price" => "53"); 
extract($a,EXTR_PREFIX_ALL,"SC"); 
echo "color = $SC_color<br />"; 
echo "size = $SC_size<br />"; 
echo "price = $SC_price<br />"; 
extract($a,EXTR_REFS); 
$color="green"; 
echo $a['color']; //查看原数组的值 
?>

结果为:
color = red
size = XXL
price = 53
green
PHP 相关文章推荐
一个php作的文本留言本的例子(一)
Oct 09 PHP
php中的一个中文字符串截取函数
Feb 14 PHP
中国站长站 For Dede4.0 采集规则
May 27 PHP
一步一步学习PHP(2)――PHP类型
Feb 15 PHP
PHP为表单获取的URL 地址预设 http 字符串函数代码
May 26 PHP
PHP中=赋值操作符对不同数据类型的不同行为
Jan 02 PHP
Ajax+PHP快速上手及简单应用说明
Jul 24 PHP
Php连接及读取和写入mysql数据库的常用代码
Aug 11 PHP
php基于Snoopy解析网页html的方法
Jul 09 PHP
PHP Cookie学习笔记
Aug 23 PHP
PHP基本语法实例总结
Sep 09 PHP
mysql desc(DESCRIBE)命令实例讲解
Sep 24 PHP
PHP 反向排序和随机排序代码
Jun 30 #PHP
PHP 数组排序方法总结 推荐收藏
Jun 30 #PHP
超级好用的一个php上传图片类(随机名,缩略图,加水印)
Jun 30 #PHP
PHP字符串处理的10个简单方法
Jun 30 #PHP
php flv视频时间获取函数
Jun 29 #PHP
PHP常用代码大全(新手入门必备)
Jun 29 #PHP
PHP print类函数使用总结
Jun 25 #PHP
You might like
解析用PHP读写音频文件信息的详解(支持WMA和MP3)
2013/05/10 PHP
解析CI即CodeIgniter框架在Nginx下的重写规则
2013/06/03 PHP
thinkPHP多表查询及分页功能实现方法示例
2017/07/03 PHP
isArray()函数(JavaScript中对象类型判断的几种方法)
2009/11/26 Javascript
jQuery 核心函数以及jQuery对象
2010/03/23 Javascript
基于Jquery的文字自动截取(提供源代码)
2011/08/09 Javascript
基于jquery的跟随屏幕滚动代码
2012/07/24 Javascript
javascript比较两个日期的先后示例代码
2014/12/31 Javascript
jQuery插件扩展实例【添加回调函数】
2016/11/26 Javascript
简单实现JS倒计时效果
2016/12/23 Javascript
javascript实现文字无缝滚动
2016/12/27 Javascript
js图片轮播手动切换特效
2017/01/12 Javascript
JS拉起或下载app的实现代码
2017/02/22 Javascript
jQuery.cookie.js使用方法及相关参数解释
2017/03/06 Javascript
addEventListener()与removeEventListener()解析
2017/04/20 Javascript
JavaScript简介_动力节点Java学院整理
2017/06/26 Javascript
AngularJS实现图片上传和预览功能的方法分析
2017/11/08 Javascript
Vue的土著指令和自定义指令实例详解
2018/02/04 Javascript
vue实现微信分享链接添加动态参数的方法
2019/04/29 Javascript
中级前端工程师必须要掌握的27个JavaScript 技巧(干货总结)
2019/09/23 Javascript
[47:22]Mineski vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
[54:17]DOTA2-DPC中国联赛定级赛 RNG vs iG BO3第二场 1月10日
2021/03/11 DOTA
用python处理图片之打开\显示\保存图像的方法
2018/05/04 Python
pandas 将索引值相加的方法
2018/11/15 Python
python3.7 sys模块的具体使用
2019/07/22 Python
Python标准库json模块和pickle模块使用详解
2020/03/10 Python
python将字典内容写入json文件的实例代码
2020/08/12 Python
Python Selenium库的基本使用教程
2021/01/04 Python
html5 外链式实现加减乘除的代码
2019/09/04 HTML / CSS
C#如何调用Word并打开一个Word文档
2013/05/08 面试题
中专生毕业自我鉴定
2013/11/01 职场文书
俄语翻译实习生的自我评价分享
2013/11/06 职场文书
单位创先争优活动方案
2014/01/26 职场文书
公证委托书大全
2014/04/04 职场文书
2014高考励志标语
2014/06/05 职场文书
建国大业电影观后感
2015/06/01 职场文书