格式 extract( array var_array [, int extract_type] [,string prefix] );
例子
$array4 = array('key1'=>'value1','key2'=>'value2','key3'=>'value3'); extract($array4); echo "$key1 $key2 $key3";
这段代码内容输出如下
value1 value2 value3
参数:
extract_type
对待非法/数字和冲突的键名的方法将根据
extract_type
参数决定。可以是以下值之一:
EXTR_OVERWRITE
如果有冲突,覆盖已有的变量。
EXTR_SKIP
如果有冲突,不覆盖已有的变量。
EXTR_PREFIX_SAME
如果有冲突,在变量名前加上前缀 prefix
。
EXTR_PREFIX_ALL
给所有变量名加上前缀 prefix
。
EXTR_PREFIX_INVALID
仅在非法/数字的变量名前加上前缀 prefix
。
EXTR_IF_EXISTS
仅在当前符号表中已有同名变量时,覆盖它们的值。其它的都不处理。 举个例子,以下情况非常有用:定义一些有效变量,然后从 $_REQUEST 中仅导入这些已定义的变量。
EXTR_PREFIX_IF_EXISTS
仅在当前符号表中已有同名变量时,建立附加了前缀的变量名,其它的都不处理。 EXTR_REFS
将变量作为引用提取。这有力地表明了导入的变量仍然引用了 var_array
参数的值。可以单独使用这个标志或者在 extract_type
中用 OR 与其它任何标志结合使用。
例子2
// EXTR_PREFIX_ALL
$array4 = array('key1'=>'value1','key2'=>'value2','key3'=>'value3');
extract($array4,EXTR_PREFIX_ALL,'my_prefix');
echo "$my_prefix_key1 $my_prefix_key2 $my_prefix_key3";
这段代码内容输出如下
value1 value2 value3