看源码时遇到的一个php函数,比较神奇!
常用于:将 wddx_deserialize() 返回的结合数组中的内容导入到符号表变量中去。
测试代码,用法如下:
echo '<pre>';
$host = 'lyf3312';
$arr = [
'host' => 'www.g.cn',
'uname' => 'root',
'pwd' =>'root',
'lyf3312@163.com'
];
extract($arr);//默认覆盖已经存在的变量
var_dump($host);
extract($arr,EXTR_SKIP); // 跳过已经存在的变量,即不会覆盖已经存在的变量
extract($arr,EXTR_PREFIX_SAME,'lyf'); //如果和已经存在变量冲突,则在变量名前添加前缀lyf
var_dump($lyf_host);
extract($arr,EXTR_PREFIX_ALL,'test');//对所有变量名添加前缀test
var_dump($test_host);
extract($arr,EXTR_REFS); //引用方式,建立变量;
$uname = 'lyf';
var_dump($arr);
$res = extract($arr,EXTR_PREFIX_INVALID,'no');//在非法或数字变量前加前缀no
echo $res; //导出的变量个数
var_dump($no_0); //第一个数字变量
var_dump($pwd);