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读取IMAP邮件
Oct 09 PHP
加强版phplib的DB类
Mar 31 PHP
也谈php网站在线人数统计
Apr 09 PHP
php学习之运算符相关概念
Jun 09 PHP
php URL验证正则表达式
Jul 19 PHP
php strnatcmp()函数的用法总结
Nov 27 PHP
浅谈PHP调用Webservice思路及源码分享
Jun 04 PHP
phpmyadmin中禁止外网使用的方法
Nov 04 PHP
ThinkPHP表单数据智能写入create方法实例分析
Sep 27 PHP
PHP调用存储过程返回值不一致问题的解决方法分析
Apr 26 PHP
PHP集成环境XAMPP的安装与配置
Nov 13 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
JAVA/JSP学习系列之六
2006/10/09 PHP
有关phpmailer的详细介绍及使用方法
2013/01/28 PHP
php去除换行(回车换行)的三种方法
2014/03/26 PHP
JavaScript显示当前文档最后修改日期的方法
2015/03/19 Javascript
javascript常见数据验证插件大全
2015/08/03 Javascript
jQuery模拟Marquee实现无缝滚动效果完整实例
2016/09/29 Javascript
vuejs2.0实现分页组件使用$emit进行事件监听数据传递的方法
2017/02/22 Javascript
浅谈Node.js ORM框架Sequlize之表间关系
2017/07/24 Javascript
JavaScript 中使用 Generator的方法
2017/12/29 Javascript
关于vue中watch检测到不到对象属性的变化的解决方法
2018/02/08 Javascript
利用es6 new.target来对模拟抽象类的方法
2019/05/10 Javascript
javascript定时器的简单应用示例【控制方块移动】
2019/06/17 Javascript
Angular8 简单表单验证的实现示例
2020/06/03 Javascript
[01:03:38]2014 DOTA2国际邀请赛中国区预选赛5.21 CNB VS CIS
2014/05/22 DOTA
收集的几个Python小技巧分享
2014/11/22 Python
研究Python的ORM框架中的SQLAlchemy库的映射关系
2015/04/25 Python
python读取word文档的方法
2015/05/09 Python
Python延时操作实现方法示例
2018/08/14 Python
python找出完数的方法
2018/11/12 Python
解决django同步数据库的时候app models表没有成功创建的问题
2019/08/09 Python
Python+OpenCV 实现图片无损旋转90°且无黑边
2019/12/12 Python
在python3中实现更新界面
2020/02/21 Python
python 插入日期数据到Oracle实例
2020/03/02 Python
HTML5的结构和语义(1):前言
2008/10/17 HTML / CSS
单身旅行者的单身假期:Just You
2018/04/08 全球购物
如何判断计算机可能已经中马
2013/03/22 面试题
最受欢迎的自我评价
2013/12/22 职场文书
农村葬礼主持词
2014/03/31 职场文书
关于爱国的演讲稿
2014/05/07 职场文书
白鹤梁导游词
2015/02/06 职场文书
2015年行政管理人员工作总结
2015/10/15 职场文书
导游词之西安骊山
2019/12/03 职场文书
导游词之安徽巢湖
2019/12/26 职场文书
Python利器openpyxl之操作excel表格
2021/04/17 Python
关于PostgreSQL JSONB的匹配和交集问题
2021/09/14 PostgreSQL
SSM VUE Axios详解
2021/10/05 Vue.js