慎用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;
}
posted @ 2011-03-01 14:39  王滔  阅读(329)  评论(0编辑  收藏  举报