$arr2=array('a'=>'aaaa','b'=>'bbbb','c'=>'cccc','d'=>'dddd','e'=>'eeeee','b'=>'fffff',); extract($arr2,EXTR_OVERWRITE); var_dump($arr); //echo $wx_a,$wx_b,$wx_c,$wx_d; echo $a,$b,$c,$d; //array(5) { ["a"]=> string(4) "aaaa" ["b"]=> string(5) "fffff" ["c"]=> string(4) "cccc" ["d"]=> string(4) "dddd" ["e"]=> string(5) "eeeee" } aaaafffffccccdddd echo "<br>"; $arr3=array('a'=>'aaaa','b'=>'bbbb','c'=>'cccc','d'=>'dddd','e'=>'eeeee',); $b='fffff'; extract($arr3,EXTR_PREFIX_SAME,'wx'); var_dump($arr); echo $a,$b,$c,$d,$wx_b;
结果:
总结:
extract — 从数组中将变量导入到当前的符号表。
说明
int extract ( array &$array [, int $flags = EXTR_OVERWRITE [, string $prefix = NULL ]] )
当flag为EXTR_OVERWRITE时,后面的覆盖前面 的;
当flag为EXTR_PREFIX_SAME时,自动加前缀wx后,wx_b是覆盖前的$b的值。