最近在看一个专家的代码,看到一个很好用的功能:(提取物),其主要作用是扩大阵列,作为一个关键变量,元素的值是该变量的值,可以说是提供一个方便的工具,例如对数组的操作,你可以提取美元_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);
echo $美元美元颜色,大小,形状,wddx_size美元;
>

这将输出:

蓝色,大,球形,中等

$大小不覆盖由于extr_prefix_same是指定的,这使得美元wddx_size设置。如果extr_skip指定,然后wddx_size美元不会established.extr_overwrite将中等大小的美元价值,并extr_prefix_all将创建新的变量,wddx_color美元,wddx_size美元,美元和wddx_shape。

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