PHP extract()
函数用于将数组中的变量导入到当前的符号表中。 它需要一个关联数组数组,并将键作为变量名和值作为变量值。对于每个键/值对,它将在当前符号表中创建一个变量,受到extract_type
和prefix
参数的限制。
each()
函数语法是 -
extract($array, $extract_type, $prefix)
参数
- array - 一个指定的数组。
- extract_type - 可选项。
extract()
函数检查无效变量名称和与现有变量名称的冲突。 此参数指定如何处理无效和碰撞名称。可能的值 -- EXTR_OVERWRITE - 默认。 碰撞时,现有变量被覆盖。
- EXTR_SKIP - 碰撞时,现有的变量不会被覆盖
- EXTR_PREFIX_SAME - 碰撞时,变量名将被赋予一个前缀。
- EXTR_PREFIX_ALL - 所有的变量名都会被赋予一个前缀。
- EXTR_PREFIX_INVALID - 只有无效或数字变量名称才会被赋予前缀。
- EXTR_IF_EXISTS - 只覆盖当前符号表中的现有变量,否则什么都不做。
- EXTR_PREFIX_IF_EXISTS - 如果当前符号表中存在相同的变量,则只向变量添加前缀。
- EXTR_REFS - 提取变量作为参考。导入的变量仍然引用数组参数的值。
- prefix - 可选参数。如果在
extract_rules
参数中使用EXTR_PREFIX_SAME
,EXTR_PREFIX_ALL
,EXTR_PREFIX_INVALID
或EXTR_PREFIX_IF_EXISTS
,则需要指定的前缀。该参数指定前缀。前缀通过下划线字符自动从数组键中分离出来。
返回值
- 它返回成功导入到符号表中的变量的数量。
示例
试试下面的例子 -
<?php
$size = "large";
$input = array("color" => "blue", "size" => "medium", "shape" => "sphere");
extract($input, EXTR_PREFIX_SAME, "bbcx");
echo "$color, $size, $shape, $bbcx_size";
?>
执行上面示例代码,得到以下结果 -
blue, large, sphere, medium