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 iconv 函数转gb2312的bug解决方法
Oct 11 PHP
对象失去焦点时自己动提交数据的实现代码
Nov 06 PHP
PHP判断一个gif图片是否为动态图片的方法
Nov 19 PHP
php获取Google机器人访问足迹的方法
Apr 15 PHP
PHP获取文件行数的方法
Jun 10 PHP
Yii2隐藏frontend/web和backend/web的方法
Dec 12 PHP
php基于Fleaphp框架实现cvs数据导入MySQL的方法
Feb 23 PHP
PHP+mysql实现从数据库获取下拉树功能示例
Jan 06 PHP
利用PHPExcel读取Excel的数据和导出数据到Excel
May 12 PHP
php 数据结构之链表队列
Oct 17 PHP
PHP实现的62进制转10进制,10进制转62进制函数示例
Jun 06 PHP
让whoops帮我们告别ThinkPHP6的异常页面
Mar 02 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+JS实现大规模数据提交的方法
2015/07/02 PHP
用js计算页面执行时间的函数
2006/12/07 Javascript
js实现运行代码需要刷新的解决方法
2007/08/18 Javascript
JS查看对象功能代码
2008/04/25 Javascript
javascript contains和compareDocumentPosition 方法来确定是否HTML节点间的关系
2010/02/04 Javascript
Javascript实现DIV滚动自动滚动到底部的代码
2012/03/01 Javascript
jQuery中获取Radio元素值的方法
2013/07/02 Javascript
JS 打印界面的CSS居中代码适用所有浏览器
2014/03/19 Javascript
网页运行时提示对象不支持abigimage属性或方法
2014/08/10 Javascript
JavaScript之Object类型介绍
2015/04/01 Javascript
jQuery自动添加表单项的方法
2015/07/13 Javascript
JavaScript中的this关键字使用详解
2015/08/14 Javascript
javascript引用类型之时间Date和数组Array
2015/08/27 Javascript
js检测用户输入密码强度
2015/10/22 Javascript
如何实现json数据可视化详解
2016/11/24 Javascript
浅谈jquery页面初始化的4种方式
2016/11/27 Javascript
jquery validation验证表单插件
2017/01/07 Javascript
JS实现评价的星星功能
2017/08/20 Javascript
Vue 项目分环境打包的方法示例
2018/08/03 Javascript
nodejs简单抓包工具使用详解
2019/08/23 NodeJs
python任务调度实例分析
2015/05/19 Python
详解Django中六个常用的自定义装饰器
2018/07/04 Python
Python使用reportlab模块生成PDF格式的文档
2019/03/11 Python
python程序运行进程、使用时间、剩余时间显示功能的实现代码
2019/07/11 Python
tensorflow 模型权重导出实例
2020/01/24 Python
Python文件名匹配与文件复制的实现
2020/12/11 Python
python pillow库的基础使用教程
2021/01/13 Python
CSS3教程(9):设置RGB颜色
2009/04/02 HTML / CSS
为女性购买传统的印度服装和婚纱:Kalkifashion
2019/07/22 全球购物
英国医生在线预约:Top Doctors
2019/10/30 全球购物
拾金不昧的表扬信
2014/01/16 职场文书
普通话演讲稿
2014/09/03 职场文书
个人查摆问题自查报告
2014/10/16 职场文书
第一书记观后感
2015/06/08 职场文书
2016关于读书活动的心得体会
2016/01/14 职场文书
《山中访友》教学反思
2016/02/24 职场文书