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 相关文章推荐
phpfans留言版用到的install.php
Jan 04 PHP
实用函数3
Nov 08 PHP
php self,$this,const,static,-&amp;gt;的使用
Oct 22 PHP
PHP排序之二维数组的按照字母排序实现代码
Aug 13 PHP
php笔记之:有规律大文件的读取与写入的分析
Apr 26 PHP
ThinkPHP3.1新特性之动态设置自动完成及自动验证示例代码
Jun 23 PHP
php随机取mysql记录方法小结
Dec 27 PHP
php+mysqli使用面向对象方式更新数据库实例
Jan 29 PHP
php实现与python进行socket通信的方法示例
Aug 30 PHP
浅析PHP中的闭包和匿名函数
Dec 25 PHP
Laravel框架之解决前端显示图片问题
Oct 24 PHP
php查看一个变量的占用内存的实例代码
Mar 29 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
德劲1107的电路分析与打磨
2021/03/02 无线电
php mysql数据库操作类
2008/06/04 PHP
基于PHP如何把汉字转化为拼音
2015/12/11 PHP
javascript for循环设法提高性能
2010/02/24 Javascript
JavaScript 放大镜 放大倍率和视窗尺寸
2011/05/09 Javascript
JavaScript中的style.display属性操作
2013/03/27 Javascript
Javascript保存网页为图片借助于html2canvas库实现
2014/09/05 Javascript
JavaScript中获取样式的原生方法小结
2014/10/08 Javascript
Three.js利用性能插件stats实现性能监听的方法
2017/09/25 Javascript
详解Nuxt.js部署及踩过的坑
2018/08/07 Javascript
原生JS 实现的input输入时表格过滤操作示例
2019/08/03 Javascript
vue表单中遍历表单操作按钮的显示隐藏示例
2019/10/30 Javascript
Egg Vue SSR 服务端渲染数据请求与asyncData
2019/11/24 Javascript
jQuery模仿ToDoList实现简单的待办事项列表
2019/12/30 jQuery
vue实现移动端项目多行文本溢出省略
2020/07/29 Javascript
vite2.0+vue3移动端项目实战详解
2021/03/03 Vue.js
[02:44]2014DOTA2 国际邀请赛中国区预选赛 大神红毯秀
2014/05/25 DOTA
[01:46]新英雄登场
2019/09/10 DOTA
Python 模板引擎的注入问题分析
2017/01/01 Python
Python中的id()函数指的什么
2017/10/17 Python
python实现电子产品商店
2019/02/26 Python
linux 下python多线程递归复制文件夹及文件夹中的文件
2020/01/02 Python
python使用scapy模块实现ping扫描的过程详解
2021/01/21 Python
英国家庭、花园、汽车和移动解决方案:Easylife Group
2018/05/23 全球购物
购买正版游戏和游戏激活码:Green Man Gaming
2019/11/06 全球购物
德国消费电子产品购物网站:Guter Kauf
2020/09/15 全球购物
香港零食网购:上仓胃子
2020/06/08 全球购物
旅游管理实习自我鉴定
2013/09/29 职场文书
计算机应用职专应届生求职信
2013/11/12 职场文书
工程项目经理岗位职责
2013/12/15 职场文书
大学生创业计划书的用途
2014/01/08 职场文书
亚运会口号
2014/06/20 职场文书
党校党性分析材料
2014/12/19 职场文书
前台岗位职责
2015/02/13 职场文书
小学2016年“我们的节日·重阳节”活动总结
2016/04/01 职场文书
基于Redis结合SpringBoot的秒杀案例详解
2021/10/05 Redis