最新的Web开发教程
 

PHP extract() Function

<PHP阵列参考

分配值"Cat""Dog""Horse"到变量$ A,$ B $和C:

<?php
$a = "Original";
$my_array = array("a" => "Cat" ,"b" => "Dog" , "c" => "Horse");
extract($my_array);
echo "\$a = $a; \$b = $b; \$c = $c";
?>
运行示例»

定义和用法

extract()函数变量导入到局部符号表由阵列。

此函数使用数组键作为变量名和值作为变量值。 对于每个元件会造成在当前的符号表的变量。

该函数返回的成功提取的变量数目。


句法

extract( array,extract_rules,prefix )

参数 描述
array 需要。 指定要使用的数组
extract_rules 可选的。 的extract()函数检查无效的变量名和碰撞与现有的变量名。 该参数指定无效,碰撞名的方式处理。

可能的值:

  • EXTR_OVERWRITE - 默认。 在碰撞中,存在的变量被覆盖
  • EXTR_SKIP - 冲突,现有的变量不会被覆盖
  • EXTR_PREFIX_SAME - 有冲突,在变量名会给出一个前缀
  • EXTR_PREFIX_ALL - 所有的变量都将被赋予一个前缀
  • EXTR_PREFIX_INVALID - 仅无效或数字的变量名会给出一个前缀
  • EXTR_IF_EXISTS - 仅覆盖现有的变量在当前的符号表,否则什么都不做
  • EXTR_PREFIX_IF_EXISTS - 如果在当前符号表中存在相同的变量,只有添加前缀变量
  • EXTR_REFS - 提取变量的引用。 导入的变量仍然引用数组参数的值
prefix 可选的。 如果EXTR_PREFIX_SAME,EXTR_PREFIX_ALL,EXTR_PREFIX_INVALID或EXTR_PREFIX_IF_EXISTS在extract_rules参数被使用,需要指定的前缀。

此参数指定的前缀。 前缀自动地从由一个下划线字符数组键分离。

技术细节

返回值: 返回提取成功的变量数目
PHP版本: 4+
更新日志: extract_rules值EXTR_REFS是PHP 4.3中添加。

extract_rules值EXTR_IF_EXISTS和EXTR_PREFIX_IF_EXISTS在PHP 4.2中添加。

由于PHP 4.0.5,这个函数现在返回提取的变量数目。

extract_rules值EXTR_PREFIX_INVALID是PHP 4.0.5添加的。

由于PHP 4.0.5中,extract_rules值EXTR_PREFIX_ALL现在包括数值变量为好。

更多示例

实施例1

使用所有参数:

<?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";
?>
运行示例»

<PHP阵列参考