慎用extract()函数
问题在于:如果没有指定 extract_type,则被假定为 EXTR_OVERWRITE。
覆盖就意味着,假如在使用extract之前存在一个跟数组中索引值相等的变量名。那么,就会覆盖掉之前的变量值。
所以:使用该函数时一定要定义extract_type。不要让其按默认值处理了。不定义就按默认值。
网上关于性能问题的测试:http://www.liuhui.info/article25.html 也就是明显比自定义for循环慢
替代方式:
$get = $_GET;//接收返利网传递的参数
//注册为超全局变量
foreach($get as $key => $value){
if(!isset($GLOBALS[$key])) //避免覆盖之前的值
$GLOBALS[$key] = $value;
}
覆盖就意味着,假如在使用extract之前存在一个跟数组中索引值相等的变量名。那么,就会覆盖掉之前的变量值。
所以:使用该函数时一定要定义extract_type。不要让其按默认值处理了。不定义就按默认值。
网上关于性能问题的测试:http://www.liuhui.info/article25.html 也就是明显比自定义for循环慢
替代方式:
$get = $_GET;//接收返利网传递的参数
//注册为超全局变量
foreach($get as $key => $value){
if(!isset($GLOBALS[$key])) //避免覆盖之前的值
$GLOBALS[$key] = $value;
}
-----------------------------------------------
Created By 王滔 专注于互联网系统开发
原创文章,转载注明出处,
-----------------------------------------------