PHP中提取()函数的定义和用法

定义和用法

PHP提取()函数将变量从数组中导入到当前符号表中。

对于数组中的每个元素,键变量的变量名都是键。

第二个参数类型用于指定当变量已经存在且数组具有相同的name元素时,提取()函数如何处理这种冲突。

此函数返回已成功设置的变量的数目。

语法
提取物(阵列,extract_rules,前缀)





参数
描述

阵列
这是必要的,需要使用的输入。

extract_rules


可选。提取()函数将检查每个键是否有效变量名,还检查和变量符号表名称冲突。

对非法、数字和冲突密钥的处理将根据此参数来确定:

可能的值:

extr_overwrite违约。如果有冲突,存在的变量被覆盖。
extr_skip -如果有一个冲突,它不会覆盖现有的变量。(忽略数组中相同名称的元素)
extr_prefix_same -如果有一个冲突,在变量名加前缀前缀。因为PHP 4.0.5,这也包括数字指标的处理。
extr_prefix_all添加前缀前缀的所有变量的名称(第三个参数)。
extr_prefix_invalid添加前缀前缀只在非法的或数字的变量的名称。这个标签是PHP 4.0.5新加。
extr_if_exists叠加他们的价值只有在当前符号表具有相同名称的变量。别人不处理它,你可以使用一个变量已经定义相结合的方法,然后从数组中提取值,如_request美元,覆盖变量。这个标签是PHP 4.2.0新增加的。
extr_prefix_if_exists -在当前符号表中具有相同名称的变量前缀的变量名是成立的,而别人不处理它。这个标签是PHP 4.2.0新加。
extr_refs提取变量作为参考。这是一个强有力的迹象表明,进口变量仍然引用的var_array参数的值,你可以使用此标志或单独使用或与其他extract_type标志。这个标签是PHP 4.3.0新加。

前缀


可选的。请注意,前缀只需要当extract_type值extr_prefix_same,extr_prefix_all,extr_prefix_invalid,或extr_prefix_if_exists.if附加前缀是不是合法的变量名,将不会导入到符号表。

在前缀和数组键之间自动使用下划线。
例1

复制代码代码如下所示:
< PHP
美元= 'original;
my_array美元=阵列(猫
提取物($ my_array);

>

输出:

美元=猫;
美元=狗;
美元=马

例2

使用所有参数:

复制代码代码如下所示:
< PHP
美元= 'original;
my_array美元=阵列(猫

提取物(my_array美元,extr_prefix_same,'dup);

回声 $ = $;◎B = B美元美元美元美元;◎C=C;◎dup_a美元= $ dup_a;;
>


输出:

$ =原始;
美元=狗;
美元=马;
dup_a美元=猫;

PHP提取()函数

最近在看一个专家的代码,看到一个很好用的功能:(提取物),其主要作用是扩大阵列,作为一个关键变量,元素的值是该变量的值,可以说是提供一个方便的工具,例如对数组的操作,你可以提取美元_post非常方便_get美元或元素,形式提交的内容没有一个分配,直接使用下面的代码:

form.html
复制代码代码如下所示:





在action.php,只是用提取物()函数来解锁的_post美元全球数据:
action.php

复制代码代码如下所示:
< PHP
提取物($ _post);
/ /折合美元_post {用户名=美元'username};
/ / $密码= _post美元'password'} {;
>


很方便吗下面是PHP手册中的详细说明。

提取物
(PHP 4,PHP 5)

从数组中导入当前符号表中的变量

解释
int提取物(数组var_array int extract_type美元,字符串,为前缀)

这个函数是用来从一个数组中导入到当前的符号表变量。接受数组作为参数,将var_array名称作为变量名,值为该变量的值。每个键/值对设置变量在当前符号表和受extract_type和前缀参数。


注:从版本4.0.5返回变量提取的功能的数量。
注:extr_if_exists和extr_prefix_if_exists介绍版本4.2.0。
注:extr_refs介绍4.3.0版。

(提取)检查每个关键看是否可以作为一个有效的变量名,冲突也检查和符号表中的变量名,非法数字键和冲突处理方法将根据extract_type参数决定。它可以是下列值之一:

extr_overwrite
如果有冲突,覆盖现有变量。
extr_skip
如果有冲突,它不会覆盖现有的变量。
extr_prefix_same
如果出现冲突,则在变量的名称之前添加前缀前缀。
extr_prefix_all
所有的变量名加前缀前缀。因为PHP 4.0.5,这也包括数字指标的处理。
extr_prefix_invalid
添加前缀前缀只在名义非法 /数字变量。这个标签是PHP 4.0.5新加。
extr_if_exists
值覆盖仅在当前符号表具有相同名称的变量。别人不处理它,你可以使用一个变量已经定义相结合的方法,然后从数组中提取值,如_request美元,覆盖变量。这个标签是一个PHP 4.2.0新增加的。
extr_prefix_if_exists
在当前的符号表中具有相同名称的变量前缀的变量名是成立的,而别人不处理它。这个标签是PHP 4.2.0新加。
extr_refs
提取变量作为参考。这是一个强有力的迹象表明,进口变量仍然引用的var_array参数的值,你可以使用此标志或单独使用或与其他extract_type标志。这个标签是PHP 4.3.0新加。
如果没有指定extract_type,它被认为是extr_overwrite。

注意,前缀只需要当extract_type值extr_prefix_same,extr_prefix_all,extr_prefix_invalid,或extr_prefix_if_exists.if附加前缀是不是合法的变量名,将不会导入到符号表中。前缀和数组的键自动下划线之间。

提取()返回已成功导入符号表中的变量的数目。

警告

不要用提取物()的数据,是不可信赖的,如用户的输入(_get美元,…)。如果你这样做,例如,你需要暂时运行旧的代码依赖于register_globals,确保extract_type值不会被覆盖,例如,extr_skip,指出应根据variables_order在php.ini中定义的顺序提取。

提取可能的使用()是进口的联合数组的内容返回wddx_deserialize()到符号表中的变量。

1例#提取物()的例子
复制代码代码如下所示:
< PHP
假设var_array美元是wddx_deserialize / *返回数组。
大小= 大;
var_array美元=阵列(色=蓝
大小
形状=球形);
提取物(var_array美元,extr_prefix_same,WDDX );
回声美元美元美元的颜色,大小,形状,wddx_size美元;
>

这将输出:

蓝色,大,球形,中等

$大小不覆盖由于extr_prefix_same是指定的,这使得美元wddx_size设置。如果extr_skip指定,然后wddx_size美元不会established.extr_overwrite将使美元媒体价值大小

关联数组必须使用数字索引数组,并将除非extr_prefix_all或extr_prefix_invalid是用来产生结果。