## 数组变量导入符号表
> ### PHP extract(array,extract_rules,prefix) 函数
*说明*
extract() 函数从数组中将变量导入到当前的符号表。
_符号表是指当前php页面中,所有变量名称的集合,可以使用函数get_defined_vars()直接获得当前所有已定义变量列表的多维数组_
该函数使用数组键名作为变量名,使用数组键值作为变量值。针对数组中的每个元素,将在当前符号表中创建对应的一个变量。
第二个参数 type 用于指定当某个变量已经存在,而数组中又有同名元素时,extract() 函数如何对待这样的冲突。
该函数返回成功导入到符号表中的变量数目。
<table class="dataintable">
<tbody><tr>
<th style="width:20%;">参数</th>
<th>描述</th>
</tr>
<tr>
<td><i>array</i></td>
<td>必需。规定要使用的数组。</td>
</tr>
<tr>
<td><i>extract_rules</i></td>
<td>
<p>可选。extract() 函数将检查每个键名是否为合法的变量名,同时也检查和符号表中已存在的变量名是否冲突。对不合法和冲突的键名的处理将根据此参数决定。</p>
<p>可能的值:</p>
<ul class="listintable">
<li>EXTR_OVERWRITE - 默认。如果有冲突,则覆盖已有的变量。</li>
<li>EXTR_SKIP - 如果有冲突,不覆盖已有的变量。</li>
<li>EXTR_PREFIX_SAME - 如果有冲突,在变量名前加上前缀 <i>prefix</i>。</li>
<li>EXTR_PREFIX_ALL - 给所有变量名加上前缀 <i>prefix</i>。</li>
<li>EXTR_PREFIX_INVALID - 仅在不合法或数字变量名前加上前缀 <i>prefix</i>。</li>
<li>EXTR_IF_EXISTS - 仅在当前符号表中已有同名变量时,覆盖它们的值。其它的都不处理。</li>
<li>EXTR_PREFIX_IF_EXISTS - 仅在当前符号表中已有同名变量时,建立附加了前缀的变量名,其它的都不处理。</li>
<li>EXTR_REFS - 将变量作为引用提取。导入的变量仍然引用了数组参数的值。</li>
</ul>
</td>
</tr>
<tr>
<td><i>prefix</i></td>
<td>
<p>可选。请注意 <i>prefix</i> 仅在 <i>extract_type</i> 的值是 EXTR_PREFIX_SAME,EXTR_PREFIX_ALL,EXTR_PREFIX_INVALID 或 EXTR_PREFIX_IF_EXISTS 时需要。如果附加了前缀后的结果不是合法的变量名,将不会导入到符号表中。</p>
<p>前缀和数组键名之间会自动加上一个下划线。</p>
</td>
</tr>
</tbody></table>
*例子*
~~~
<?php
$a = "Original";
$my_array = array("a" => "Cat", "b" => "Dog", "c" => "Horse");
extract($my_array, EXTR_PREFIX_SAME, "dup");
echo "\$a = $a; \$b = $b; \$c = $c; \$dup_a = $dup_a";
?>
~~~
*输出*
~~~
$a = Original; $b = Dog; $c = Horse; $dup_a = Cat
~~~
- 脑袋缓存
- 微信框架
- 案例展示
- 网络营销术语
- 打印控件
- 逻辑值交换律
- 常用网址
- 开发文档类
- W3C
- PHP
- 算法
- RSA非对称加密算法
- DES对称加密算法
- SHA安全散列算法
- AES加密
- 跌了n倍再涨m倍回到原价
- 多条数据同时排序算法1
- 多条数据同时排序算法2
- 工具
- 视频工具
- 音频工具
- 电子书阅读器
- PHP学习笔记
- 函数
- 文件系统函数
- 搜索函数
- 时间函数
- 获取当前时间
- 变量处理函数
- 获取所有已定义变量
- 文本函数
- 文本替换
- ASSIC转换
- 文本截取
- 大小写转换
- 二进制比较字符串
- 数组函数
- 定义数组
- 数组变量导入符号表
- 数组排序
- 数组与字符串转换
- 数学函数
- 进制转换
- 配置常用项
- 短标记
- PHP内置WebServer
- 数据库扩展
- 抽象层PDO
- 连接管理
- 执行SQL命令
- 预处理
- MYSQL扩展
- 连接管理
- 选择数据库
- 清除BOM
- bashShell笔记
- vim基础
- 常用指令
- 用户操作
- 网络配置
- 文件权限
- Markdown笔记
- 编辑器&阅读器
- 看云
- mackpad
- 语法
- 转义字符
- git学习笔记
- 常用命令
- 基本命令
- 远程命令
- 创建仓库
- 修改配置
- 存档工作区
- WEB服务器
- 服务器技术的发展
- rewrite
- Go语言
- 在线开发环境
- bootstrap学习笔记
- 布局栅格
- CSS学习笔记
- 圆角
- 强制不换行
- 带透明度的颜色值rbga
- 渐变动画
- 滚动条控制
- 渐变过渡
- 透明度
- 背景渐变
- MYSQL笔记
- 字段类型
- SQL命令
- 用户管理-权限
- 重载用户权限
- 修复表格
- 优化表格
- 替换
- 编辑字段
- 库表的基本操作
- 环境变量
- 连表删除
- HybridApp
- 开发框架
- 即时通讯架构
- 网易云信
- 消息推送
- 消息推送协议
- 第三方消息推送方案
- javascript
- json与字符串互解析
- 大小写转换
- jQuery序列化表单
- 判断是否移动端
- 获取url中的参数
- 获取格式化的日期
- jQuery操作checked
- js实现继承
- 难点讲解
- json排序
- 特殊算法
- cookie操作
- 原生的touch事件
- HTML
- 视频标签
- zyMedia视频插件
- 百度地图URI
- DEDE织梦笔记
- 水印无效
- 支付
- nodejs
- 常用命令
- NPM