PHP extract 将数组拆分成多个变量的函数
程序员文章站
2023-11-09 23:03:10
extract()函数语法: int extract( array $var_array [, int $extract_type = extr_overwrite [,...
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
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
下一篇: Linux 删除文本中的重复行的方法
推荐阅读
-
PHP extract 将数组拆分成多个变量的函数
-
php通过array_push()函数添加多个变量到数组末尾的方法
-
php使用explode()函数将字符串拆分成数组的方法
-
PHP extract 将数组拆分成多个变量的函数
-
php使用explode()函数将字符串拆分成数组的方法_PHP
-
php使用explode()函数将字符串拆分成数组的方法_PHP教程
-
array_push php array_push数组函数:将一个或多个单元压入数组的末尾(入栈)
-
php使用explode()函数将字符串拆分成数组的方法
-
php使用explode()函数将字符串拆分成数组的方法,explode数组
-
php通过array_unshift函数添加多个变量到数组前端的方法