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下获取客户端ip地址的函数
Mar 15 PHP
php守护进程 加linux命令nohup实现任务每秒执行一次
Jul 04 PHP
php中使用parse_url()对网址进行解析的实现代码(parse_url详解)
Jan 03 PHP
TMDPHP 模板引擎使用教程
Mar 13 PHP
php代码书写习惯优化小结
Jun 20 PHP
Yii配置与使用memcached缓存的方法
Jul 13 PHP
完美利用Yii2微信后台开发的系列总结
Jul 18 PHP
PHP Oauth授权和本地加密实现方法
Aug 12 PHP
PHP开发中解决并发问题的几种实现方法分析
Nov 13 PHP
LaravelS通过Swoole加速Laravel/Lumen详解
Mar 02 PHP
PHP 对象接口简单实现方法示例
Apr 13 PHP
php引用传递
Apr 01 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实现通过中文字符比率来判断垃圾评论的方法
2014/10/20 PHP
php设计模式之适配器模式原理、用法及注意事项详解
2019/09/24 PHP
javascript 自定义事件初探
2009/08/21 Javascript
JS延迟加载(setTimeout) JS最后加载
2010/07/15 Javascript
Javascript的setTimeout()使用闭包特性时需要注意的问题
2014/09/23 Javascript
node.js中的fs.fstatSync方法使用说明
2014/12/15 Javascript
Javascript 拖拽雏形中的一些问题(逐行分析代码,让你轻松了拖拽的原理)
2015/01/23 Javascript
Javascript无参数和有参数类继承问题解决方法
2015/03/02 Javascript
JavaScript实现向setTimeout执行代码传递参数的方法
2015/04/16 Javascript
Bootstrap Modal对话框如何在关闭时触发事件
2016/12/02 Javascript
Bootstrap源码解读下拉菜单(4)
2016/12/23 Javascript
js实现hashtable的赋值、取值、遍历操作实例详解
2016/12/25 Javascript
JS动态生成年份和月份实例代码
2017/02/04 Javascript
JavaScript函数绑定用法实例分析
2017/11/14 Javascript
Koa2微信公众号开发之本地开发调试环境搭建
2018/05/16 Javascript
解析vue data不可以使用箭头函数问题
2018/07/03 Javascript
Layui数据表格之获取表格中所有的数据方法
2018/08/20 Javascript
JavaScript私有变量实例详解
2019/01/24 Javascript
webpack4 optimization使用总结
2019/11/10 Javascript
JavaScript switch语句使用方法简介
2019/12/30 Javascript
JavaScript 中的六种循环方法
2021/01/06 Javascript
以911新闻为例演示Python实现数据可视化的教程
2015/04/23 Python
Python获取任意xml节点值的方法
2015/05/05 Python
Python中类型检查的详细介绍
2017/02/13 Python
深入浅析Python中的yield关键字
2018/01/24 Python
对python 操作solr索引数据的实例详解
2018/12/07 Python
python speech模块的使用方法
2020/09/09 Python
职业生涯规划怎么写
2013/12/29 职场文书
浙大毕业生自荐信
2014/01/26 职场文书
微信搭讪开场白
2015/05/28 职场文书
单位证明范文
2015/06/18 职场文书
新学期开学寄语2016
2015/12/04 职场文书
教师学期述职自我鉴定
2019/08/16 职场文书
某某店铺的开业庆典主持词范本
2019/11/25 职场文书
Python中的程序流程控制语句
2022/02/24 Python
python数字图像处理之对比度与亮度调整示例
2022/06/28 Python