PHP extract() 函数
说明
extract()
函数将变量从数组中导入到当前符号表中。
该函数基本上从关联数组中创建变量。 这通常通过使用数组键作为变量名并将它们的对应值作为变量值来完成。
下表总结了该函数的技术细节。
返回值: | 返回成功导入符号表的变量数。 |
---|---|
版本: | PHP 4+ |
语法
extract()
函数的基本语法如下:
extract(array, flags, prefix)
下面的例子展示了 extract()
函数的作用。
<?php
// 样本关联数组
$array = array("brand"=>"Porsche", "model"=>"911", "color"=>"blue");
// 提取变量
extract($array);
echo "Brand: $brand, Model: $model, Color: $color";
?>
提示:如果现有变量与关联数组中的某个键同名,则会发生冲突,并且提取的变量会覆盖现有变量。 此外,如果关联数组中的任何键不是有效的变量名,则不会提取它。 但是,可以通过设置 flags 和 prefix 参数来更改此函数的默认行为。
警告:不要对不受信任的数据使用 extract()
函数,例如通过 Web 表单接收的用户输入(例如 $_GET
、< code>$_FILES),因为它会带来潜在的安全风险。
参数
extract()
函数接受以下参数。
参数 | 说明 |
---|---|
array | 必填。 指定要使用的数组。 |
flags |
可选。 指定如何处理无效或数字键和冲突。 此参数可以采用以下值之一:
如果不指定此参数,则假定为 |
prefix |
可选。 指定前缀字符串。 前缀通过下划线 ( 仅当 flags 设置为以下任何值时才需要此参数
EXTR_PREFIX_SAME 、EXTR_PREFIX_ALL 、EXTR_PREFIX_INVALID 或 EXTR_PREFIX_IF_EXISTS . |
更多示例
这里有更多示例显示 extract()
函数的基本工作原理:
以下示例展示了如何防止发生冲突时覆盖现有变量。
<?php
// 变量名与数组键名相同
$color = "red";
// 样本关联数组
$array = array("brand"=>"Porsche", "model"=>"911", "color"=>"blue");
// 提取变量
extract($array, EXTR_PREFIX_SAME, "car");
echo "$brand, $model, $color, $car_color";
?>
以下示例通过跳过提取来防止在发生冲突时覆盖现有变量。
<?php
// 变量名与数组键名相同
$color = "red";
// 样本关联数组
$array = array("brand"=>"Porsche", "model"=>"911", "color"=>"blue");
// 提取变量
extract($array, EXTR_SKIP);
echo "$brand, $model, $color";
?>
Advertisements