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 和 MySQL 开发的 8 个技巧
Oct 09 PHP
用php写的serv-u的web申请账号的程序
Oct 09 PHP
透析PHP的配置文件php.ini
Oct 09 PHP
最新的php 文件上传模型,支持多文件上传
Aug 13 PHP
两个开源的Php输出Excel文件类
Feb 08 PHP
php实现根据IP地址获取其所在省市的方法
Apr 30 PHP
如何解决phpmyadmin导入数据库文件最大限制2048KB
Oct 09 PHP
php lcg_value与mt_rand生成0~1随机小数的效果对比分析
Apr 05 PHP
PHP编程获取音频文件时长的方法【基于getid3类】
Apr 20 PHP
PHP读取Excel类文件
May 15 PHP
PHP性能分析工具xhprof的安装使用与注意事项
Dec 19 PHP
yii 框架实现按天,月,年,自定义时间段统计数据的方法分析
Apr 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
php skymvc 一款轻量、简单的php
2011/06/28 PHP
奉献出一个封装的curl函数 便于调用(抓数据专用)
2013/07/22 PHP
Windows下编译PHP5.4和xdebug全记录
2015/04/03 PHP
php计算给定时间之前的函数用法实例
2015/04/03 PHP
php数字运算验证码的实现代码
2015/07/30 PHP
PHP图像处理技术实例总结【绘图、水印、验证码、图像压缩】
2018/12/08 PHP
PHP registerXPathNamespace()函数讲解
2019/02/03 PHP
php 多进程编程父进程的阻塞与非阻塞实例分析
2020/02/22 PHP
js控制框架刷新
2008/08/01 Javascript
jQuery live
2009/05/15 Javascript
Javascript Tab 导航插件 (23个)
2009/06/11 Javascript
JS中怎样判断undefined(比较不错的方法)
2014/03/27 Javascript
判断复选框是否被选中的两种方法
2014/06/04 Javascript
轻松创建nodejs服务器(10):处理上传图片
2014/12/18 NodeJs
jquery+ajax实现跨域请求的方法
2015/01/20 Javascript
jQuery如何防止这种冒泡事件发生
2015/02/27 Javascript
探讨JavaScript语句的执行过程
2016/01/28 Javascript
bootstrap datetimepicker2.3.11时间插件使用
2016/11/19 Javascript
angular2路由切换改变页面title的示例代码
2017/08/23 Javascript
javascript浏览器用户代理检测脚本实现方法
2017/10/27 Javascript
JS实现的邮箱提示补全效果示例
2018/01/30 Javascript
AngularJS 应用模块化的使用
2018/04/04 Javascript
webpack-mvc 传统多页面组件化开发详解
2019/05/07 Javascript
js实现图片上传到服务器和回显
2020/01/19 Javascript
解决idea开发遇到javascript动态添加html元素时中文乱码的问题
2020/09/29 Javascript
在Python中处理列表之reverse()方法的使用教程
2015/05/21 Python
python爬虫 批量下载zabbix文档代码实例
2019/08/21 Python
使用Django搭建web服务器的例子(最最正确的方式)
2019/08/29 Python
Python爬虫回测股票的实例讲解
2021/01/22 Python
顶丰TOPPIK台湾官网:增发纤维假发,告别秃发困扰
2018/06/13 全球购物
维多利亚的秘密官方网站:Victoria’s Secret
2018/10/24 全球购物
自考生毕业自我鉴定
2013/10/10 职场文书
工程技术员岗位职责
2015/04/11 职场文书
巧用 -webkit-box-reflect 倒影实现各类动效(小结)
2021/04/22 HTML / CSS
Python爬取用户观影数据并分析用户与电影之间的隐藏信息!
2021/06/29 Python
Springboot-cli 开发脚手架,权限认证,附demo演示
2022/04/28 Java/Android