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程序占用多少内存(memory_get_usage)
Sep 23 PHP
PHP中的生成XML文件的4种方法分享
Oct 06 PHP
360通用php防护代码(使用操作详解)
Jun 18 PHP
php二维数组排序详解
Nov 06 PHP
PHP将两个关联数组合并函数提高函数效率
Mar 18 PHP
PHP实现UTF-8文件BOM自动检测与移除实例
Nov 05 PHP
php去除数组中重复数据
Nov 18 PHP
php按字符无乱码截取中文的方法
Mar 27 PHP
PHP超牛逼无限极分类生成树方法
May 11 PHP
PHP判断上传文件类型的解决办法
Oct 20 PHP
java模拟PHP的pack和unpack类
Apr 13 PHP
php反序列化长度变化尾部字符串逃逸(0CTF-2016-piapiapia)
Feb 15 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安全配置
2006/12/06 PHP
PHP利用REFERER根居访问来地址进行页面跳转
2013/09/28 PHP
PHP的MVC模式实现原理分析(一相简单的MVC框架范例)
2014/04/29 PHP
WordPress中邮件的一些修改和自定义技巧
2015/12/15 PHP
php的api数据接口书写实例(推荐)
2016/09/22 PHP
Laravel手动分页实现方法详解
2016/10/09 PHP
利用php做服务器和web前端的界面进行交互
2016/10/31 PHP
Prototype Hash对象 学习
2009/07/19 Javascript
Javascript 异步加载详解(浏览器在javascript的加载方式)
2012/05/20 Javascript
单击复制文字兼容各浏览器的完美解决方案
2013/07/04 Javascript
jQuery中$.fn的用法示例介绍
2013/11/05 Javascript
js返回上一页并刷新的多种实现方法
2014/02/26 Javascript
基于jQuery实现复选框是否选中进行答题提示
2015/12/10 Javascript
Jquery实现select multiple左右添加和删除功能的简单实例
2016/05/26 Javascript
jQuery EasyUI 右键菜单--关闭标签/选项卡的简单实例
2016/10/10 Javascript
详解照片瀑布流效果(js,jquery分别实现与知识点总结)
2017/01/01 Javascript
vue项目tween方法实现返回顶部的示例代码
2018/03/02 Javascript
VUE2.0 ElementUI2.0表格el-table自适应高度的实现方法
2018/11/28 Javascript
JavaScript实现与使用发布/订阅模式详解
2019/01/19 Javascript
JavaScript的级联函数用法简单示例【链式调用】
2019/03/26 Javascript
JavaScript函数式编程(Functional Programming)箭头函数(Arrow functions)用法分析
2019/05/22 Javascript
[05:59]带你看看DPC的台前幕后
2021/03/11 DOTA
Python 自动刷博客浏览量实例代码
2017/06/14 Python
Python中elasticsearch插入和更新数据的实现方法
2018/04/01 Python
Python3中lambda表达式与函数式编程讲解
2019/01/14 Python
python 实现提取log文件中的关键句子,并进行统计分析
2019/12/24 Python
使用python实现名片管理系统
2020/06/18 Python
numpy中生成随机数的几种常用函数(小结)
2020/08/18 Python
python 生成器需注意的小问题
2020/09/29 Python
米兰网婚纱礼服法国网上商店:Milanoo法国
2016/08/20 全球购物
美国在线工具商店:Acme Tools
2018/06/26 全球购物
授权委托书格式范文
2014/08/02 职场文书
2014领导干部学习焦裕禄同志先进事迹思想汇报
2014/09/19 职场文书
党员个人剖析材料
2014/09/30 职场文书
法人单位授权委托书范文
2014/10/06 职场文书
Java Dubbo框架知识点梳理
2021/06/26 Java/Android