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 获得汉字拼音首字母的函数
Aug 01 PHP
PHP数字和字符串ID互转函数(类似优酷ID)
Jun 30 PHP
php去掉URL网址中带有PHPSESSID的配置方法
Jul 08 PHP
php导入大量数据到mysql性能优化技巧
Dec 29 PHP
javascript数组与php数组的地址传递及值传递用法实例
Jan 22 PHP
PHP准确取得服务器IP地址的方法
Jun 02 PHP
PHP之十六个魔术方法详细介绍
Nov 01 PHP
php版微信小店API二次开发及使用示例
Nov 12 PHP
Yii2.0使用阿里云OSS的SDK上传图片、下载、删除图片示例
Sep 20 PHP
PHP+swoole+linux实现系统监控和性能优化操作示例
Apr 15 PHP
PHP实现的微信公众号扫码模拟登录功能示例
May 30 PHP
php输出文字乱码的解决方法
Oct 04 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
如何使用Linux的Crontab定时执行PHP脚本的方法
2011/12/19 PHP
Docker搭建自己的PHP开发环境
2018/02/24 PHP
xml分页+ajax请求数据源+dom取结果实例代码
2008/10/31 Javascript
javascript showModalDialog,open取得父窗口的方法
2010/03/10 Javascript
通过DOM脚本去设置样式信息
2010/09/19 Javascript
JQuery获取浏览器窗口内容部分高度的代码
2012/02/24 Javascript
JavaScript代码复用模式实例分析
2012/12/02 Javascript
JS/FLASH实现复制代码到剪贴板(兼容所有浏览器)
2013/05/27 Javascript
HTTP 304错误的详细讲解
2013/11/13 Javascript
jQuery实现form表单元素序列化为json对象的方法
2015/12/09 Javascript
JavaScript动态创建div等元素实例讲解
2016/01/06 Javascript
vuex学习之Actions的用法详解
2017/08/29 Javascript
vuejs使用递归组件实现树形目录的方法
2017/09/30 Javascript
Mac下通过brew安装指定版本的nodejs教程
2018/05/17 NodeJs
JS实现的简单分页功能示例
2018/08/23 Javascript
JavaScript Canvas编写炫彩的网页时钟
2019/10/16 Javascript
vue element 关闭当前tab 跳转到上一路由操作
2020/07/22 Javascript
Python队列的定义与使用方法示例
2017/06/24 Python
终端命令查看TensorFlow版本号及路径的方法
2018/06/13 Python
Python使用线程来接收串口数据的示例
2019/07/02 Python
tensorflow中tf.reduce_mean函数的使用
2020/04/19 Python
Python如何自动获取目标网站最新通知
2020/06/18 Python
利用scikitlearn画ROC曲线实例
2020/07/02 Python
Python unittest如何生成HTMLTestRunner模块
2020/09/08 Python
Python web框架(django,flask)实现mysql数据库读写分离的示例
2020/11/18 Python
详解python定时简单爬取网页新闻存入数据库并发送邮件
2020/11/27 Python
Python字符串的15个基本操作(小结)
2021/02/03 Python
澳洲CFL商城:CHEMIST FOR LESS(中文)
2021/02/28 全球购物
端口镜像是怎么实现的
2014/03/25 面试题
“四风”查摆问题自我剖析材料
2014/09/27 职场文书
2015年预算员工作总结
2015/05/14 职场文书
建国大业观后感
2015/06/01 职场文书
幼儿园大班开学寄语(2016秋季)
2015/12/03 职场文书
党员电教片《信仰》心得体会
2016/01/15 职场文书
React中的Context应用场景分析
2021/06/11 Javascript
解决Springboot PostMapping无法获取数据的问题
2022/05/06 Java/Android