PHP中extract()函数用一个数组$var_array做参数,将$var_array导出为键为变量名,值为变量值的一组变量。
<?php
$fruit = 'banana';
$info = array('fruit'=>'apple',
'color'=>'red',
'size'=>'big',
'bill'
);
echo '$fruit = '.$fruit;
echo '<pre>';
print_r($info);
echo '</pre>';
echo '<br><hr><br>';
extract($info);
echo '$fruit='.$fruit;
echo '<br>';
echo '$color = '.$color;
echo '<br>';
echo '$size = '.$size;
echo '<br><hr><br>';
extract($info,EXTR_PREFIX_SAME,"info");
//EXTR_PREFIX_SAME 如果有冲突,覆盖已有变量
//EXTR_SKIP 如果有冲突,不覆盖已有变量
//EXTR_PREFIX_SAME 如果有冲突,在变量名前加上前缀prefix
//EXTR_PREFIX_ALL 给所有变量名加上前缀prefix
//EXTR_PREFIX_INVALID 仅在非法/数字的变量名前加上前缀prefix
//EXTR_EXISTS 当且仅当有同名变量时,才导出对应的数组成员并覆盖他们的值。否则不导出数组成员。这个特性可以用在已经定义了一组合法的变量,然后要从一个数组例如$_POST中提取值并覆盖这些变量的场景。
//EXTR_PREFIX_IF_EXISTS 当且仅当已有同名变量时,才导出对应的数组成员并建立附加了前缀的变量名
//EXTR_REFS 将变量作为引用提取
echo '$fruit='.$fruit;
echo '<br>';
echo '$color = '.$color;
echo '<br>';
echo '$size = '.$size;