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 中文和编码判断代码
May 16 PHP
php smarty 二级分类代码和模版循环例子
Jun 01 PHP
一个PHP验证码类代码分享(已封装成类)
Jul 17 PHP
PHP设计模式之调解者模式的深入解析
Jun 13 PHP
解析smarty 截取字符串函数 truncate的用法介绍
Jun 20 PHP
PHP header()函数常用方法总结
Apr 11 PHP
PHP SESSION的增加、删除、修改、查看操作
Mar 20 PHP
PHP读取mssql json数据中文乱码的解决办法
Apr 11 PHP
php使用pear_smtp发送邮件
Apr 15 PHP
php set_include_path函数设置 include_path 配置选项
Oct 30 PHP
简单谈谈PHP面向对象之标识对象
Jun 27 PHP
基于Laravel(5.4版本)的基本增删改查操作方法
Oct 11 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
thinkPHP5.0框架引入Traits功能实例分析
2017/03/18 PHP
laravel 框架配置404等异常页面
2019/01/07 PHP
Thinkphp5.0框架视图view的循环标签用法示例
2019/10/12 PHP
js脚本学习 比较实用的基础
2006/09/07 Javascript
JQuery的ready函数与JS的onload的区别详解
2013/11/21 Javascript
JQuery中extend使用介绍
2014/03/13 Javascript
详解JavaScript中shift()方法的使用
2015/06/09 Javascript
javascript拖拽应用实例(二)
2016/03/25 Javascript
jQuery实现手机自定义弹出输入框
2016/06/13 Javascript
JS实现漂亮的时间选择框效果
2016/08/20 Javascript
详解用vue.js和laravel实现微信授权登陆
2017/06/23 Javascript
JavaScript之underscore_动力节点Java学院整理
2017/07/03 Javascript
React进阶学习之组件的解耦之道
2017/08/07 Javascript
解决JQuery全选/反选第二次失效的问题
2017/10/11 jQuery
javaScript实现鼠标在文字上悬浮时弹出悬浮层效果
2020/04/12 Javascript
[06:04]DOTA2国际邀请赛纪录片:Just For LGD
2013/08/11 DOTA
python读取word文档的方法
2015/05/09 Python
Django卸载之后重新安装的方法
2017/03/15 Python
Mac中升级Python2.7到Python3.5步骤详解
2017/04/27 Python
python实现感知器算法详解
2017/12/19 Python
python调用百度语音识别实现大音频文件语音识别功能
2018/08/30 Python
解决Pytorch 训练与测试时爆显存(out of memory)的问题
2019/08/20 Python
python用quad、dblquad实现一维二维积分的实例详解
2019/11/20 Python
django 利用Q对象与F对象进行查询的实现
2020/05/15 Python
HTML5仿手机微信聊天界面
2016/03/18 HTML / CSS
美国从事品牌鞋类零售的连锁店:Famous Footwear
2016/08/25 全球购物
优衣库台湾官网:UNIQLO台湾
2019/02/01 全球购物
实习教师自我鉴定
2013/12/09 职场文书
大学生简短的自我评价分享
2014/02/20 职场文书
股东协议书范本
2014/04/14 职场文书
《金色的脚印》教后反思
2014/04/23 职场文书
高中化学教学反思
2016/02/22 职场文书
Django debug为True时,css加载失败的解决方案
2021/04/24 Python
详解JS ES6编码规范
2021/05/07 Javascript
分享几种python 变量合并方法
2022/03/20 Python
css3 选择器
2022/05/11 HTML / CSS