看源碼時遇到的一個php函數,比較神奇!
常用於:將 wddx_deserialize() 返回的結合數組中的內容導入到符號表變量中去。
測試代碼,用法如下:
echo '<pre>';
$host = 'lyf3312';
$arr = [
'host' => 'www.g.cn',
'uname' => 'root',
'pwd' =>'root',
'[email protected]'
];
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);