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 相关文章推荐
php4的session功能评述(一)
Oct 09 PHP
关于时间计算的结总
Dec 06 PHP
php读取数据库信息的几种方法
May 24 PHP
基于AppServ,XAMPP,WAMP配置php.ini去掉警告信息(NOTICE)的方法详解
May 07 PHP
php中的boolean(布尔)类型详解
Oct 28 PHP
ThinkPHP页面跳转success与error方法概述
Jun 25 PHP
php短信接口代码
May 13 PHP
php实现跨域提交form表单的方法【2种方法】
Oct 17 PHP
ThinkPHP实现分页功能
Apr 28 PHP
PHP实现二维数组中的查找算法小结
Jun 09 PHP
PHP设计模式之工厂模式(Factory Pattern)的讲解
Mar 21 PHP
详解php中生成标准uuid(guid)的方法
Apr 28 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中CURL方法curl_setopt()函数的参数分享
2013/01/19 PHP
PHP中的use关键字及文件的加载详解
2016/11/28 PHP
JQuery的read函数与js的onload不同方式实现
2013/03/18 Javascript
innerHTML,outerHTML,innerText,outerText的用法及区别解析
2013/12/16 Javascript
浅析JS中document对象的一些重要属性
2014/03/06 Javascript
javascript实现日期格式转换
2014/12/16 Javascript
jquery选择器简述
2015/08/31 Javascript
JavaScript实现cookie的写入、读取、删除功能
2015/11/05 Javascript
js正则表达式验证邮件地址
2015/11/12 Javascript
JS随机打乱数组的方法小结
2016/06/22 Javascript
js 声明数组和向数组中添加对象变量的简单实例
2016/07/28 Javascript
最实用的jQuery分页插件
2016/10/09 Javascript
Vue.js组件间的循环引用方法示例
2017/12/27 Javascript
JS设计模式之观察者模式实现实时改变页面中金额数的方法
2018/02/05 Javascript
zTree 树插件实现全国五级地区点击后加载的示例
2018/02/05 Javascript
Vue自定义属性实例分析
2019/02/23 Javascript
浅谈JavaScript_DOM学习篇_图片切换小案例
2019/03/19 Javascript
解决layui调用自定义方法提示未定义的问题
2019/09/14 Javascript
JavaScript 实现同时选取多个时间段的方法
2019/10/17 Javascript
如何在Vue中抽离接口配置文件
2019/10/31 Javascript
Vue如何使用混合Mixins和插件开发详解
2020/02/05 Javascript
vue 弹出遮罩层样式实例
2020/07/22 Javascript
全面解析Vue中的$nextTick
2020/12/24 Vue.js
Python3搜索及替换文件中文本的方法
2015/05/22 Python
python判断一个集合是否为另一个集合的子集方法
2018/05/04 Python
python 通过 socket 发送文件的实例代码
2018/08/14 Python
python中map的基本用法示例
2018/09/10 Python
Python列表删除元素del、pop()和remove()的区别小结
2019/09/11 Python
Python udp网络程序实现发送、接收数据功能示例
2019/12/09 Python
Python实现树莓派摄像头持续录像并传送到主机的步骤
2020/11/30 Python
一款纯css3实现的响应式导航
2014/10/31 HTML / CSS
英国卫浴商店:Ergonomic Design
2019/09/22 全球购物
法院授权委托书范文
2014/08/02 职场文书
婚宴领导致辞
2015/07/28 职场文书
情人节单身感言
2015/08/03 职场文书
世界各国短波电台对东亚播送时间频率表(SW)
2021/06/28 无线电