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 相关文章推荐
IIS下配置Php+Mysql+zend的图文教程
Dec 08 PHP
PHP 创建文件(文件夹)以及目录操作代码
Mar 04 PHP
用PHP实现小写金额转换大写金额的代码(精确到分)
Jan 10 PHP
一个简洁的PHP可逆加密函数(分享)
Jun 06 PHP
PHP获取当前日期所在星期(月份)的开始日期与结束日期(实现代码)
Jun 18 PHP
解析php mysql 事务处理回滚操作(附实例)
Aug 05 PHP
php微信公众平台开发类实例
Apr 01 PHP
php冒泡排序与快速排序实例详解
Dec 07 PHP
WordPres对前端页面调试时的两个PHP函数使用小技巧
Dec 22 PHP
关于php中一些字符串总结
May 05 PHP
PHP单例模式定义与使用实例详解
Feb 06 PHP
PHP Socket网络操作类定义与用法示例
Aug 30 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命名空间(Namespace)的使用详解
2013/05/04 PHP
php强制用户转向www域名的方法
2015/06/19 PHP
解决Laravel5.2 Auth认证退出失效的问题
2019/10/14 PHP
JS中自定义定时器让它在某一时刻执行
2014/09/02 Javascript
JavaScript动态修改网页元素内容的方法
2015/03/21 Javascript
JS实现带有3D立体感的银灰色竖排折叠菜单代码
2015/10/20 Javascript
基于JS代码实现图片在页面中旋转效果
2016/06/16 Javascript
移动端翻页插件dropload.js(支持Zepto和jQuery)
2016/07/27 Javascript
jQuery ui autocomplete选择列表被Bootstrap模态窗遮挡的完美解决方法
2016/09/23 Javascript
JavaScript轮播图简单制作方法
2017/02/20 Javascript
Vue cli 引入第三方JS和CSS的常用方法分享
2018/01/20 Javascript
vue加载自定义的js文件方法
2018/03/13 Javascript
CKEditor4配置与开发详细中文说明文档
2018/10/08 Javascript
从零开始封装自己的自定义Vue组件
2018/10/09 Javascript
详解Angular5/Angular6项目如何添加热更新(HMR)功能
2018/10/10 Javascript
使用node-media-server搭建一个简易的流媒体服务器
2021/01/20 Javascript
[12:29]2018国际邀请赛 开幕秀
2018/08/22 DOTA
python实现协同过滤推荐算法完整代码示例
2017/12/15 Python
网易2016研发工程师编程题 奖学金(python)
2019/06/19 Python
python中对数据进行各种排序的方法
2019/07/02 Python
Python3内置函数chr和ord实现进制转换
2020/06/05 Python
Traffic People官网:女式花裙、上衣和连身裤
2020/10/12 全球购物
为什么如下的代码int a=100,b=100;long int c=a * b;不能工作
2013/11/29 面试题
Linux不知道文件后缀名怎么判断文件类型
2012/04/26 面试题
运动会解说词100字
2014/01/31 职场文书
作文批改评语大全
2014/04/23 职场文书
中国梦我的梦演讲稿
2014/04/23 职场文书
教师考察材料范文
2014/06/03 职场文书
天地会口号
2014/06/17 职场文书
六查六看自检自查剖析材料
2014/10/14 职场文书
工作疏忽检讨书500字
2014/10/26 职场文书
2014年化验室工作总结
2014/11/21 职场文书
培训班通知
2015/04/25 职场文书
警告通知
2015/04/25 职场文书
Python requests库参数提交的注意事项总结
2021/03/29 Python
php png失真的原因及解决办法
2021/10/24 PHP