php求解 看到一个自定义函数,求详细解释

function Root_GP(&$array)
{
while(list($key,$var) = each($array))
{
if((strtoupper($key) != $key || ''.intval($key) == "$key") && $key != 'argc' && $key != 'argv')
{
if(is_string($var)) $array[$key] = stripslashes($var);
if(is_array($var)) $array[$key] = Root_GP($var);
}
}
return $array;
}

 <?php
function Root_GP(&$array){
 while(list($key,$var) = each($array)){//取array数组的一个元素和这个元素的键,形成一个数组,并将这个数组分解到变量$key和$val,也就是取得array数组的键和值
  if((strtoupper($key) != $key || ''.intval($key) == "$key") && $key != 'argc' && $key != 'argv'){
  //多个判断,一是判断$key 必须是非全部大写的或者键是数字的  二是判断,$key不能等于argc 也不能等于argv ,两者成立这执行下边的语句
   if(is_string($var)) $array[$key] = stripslashes($var);//如果数组值是字符串,则删除由 addslashes() 函数添加的反斜杠,并写回原数组
   if(is_array($var)) $array[$key] = Root_GP($var);  //如果数组值是数组,则递归调用该函数,对数组值数组进行处理
  }
 }
 return $array;
}
?>
该函数的意义如楼上所说
不过这写法麻烦咯,可以用foreach
 while(list($key,$var) = each($array)){// 改为
 foreach($array as $key=>$var){

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-08-19
这个函数的意义是:对一个数组递归应用stripslashes()

1、strtoupper($key) != $key || ''.intval($key) == "$key"
数组的键不能是全大写的,或者下标是数字

2、$key != 'argc' && $key != 'argv'
排除两个特殊元素。它们是命令行参数个数和命令行参数数组

3、if(is_string($var)) $array[$key] = stripslashes($var);
当变量为字符串时,去除转义斜杠

4、if(is_array($var)) $array[$key] = Root_GP($var);
当变量是数组时,递归调用本函数

望采纳!本回答被提问者和网友采纳
第2个回答  2013-08-19
你一句一句的在我耳边

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网