1 //php中foreach()函数与Array数组经典案例讲解 2 function getVal($v) 3 { return $v; //可以加任意检查代码,列入要求$v必须是数字,或过滤非法字符串等。} 4 //以下一段代码其实很简单,对于新手还是老手都比较难读,不建议这样写代码,代码要安全,高效,易读易用。写一个别人难理解的代码并不是明智的选择。 5 // 读懂以下代码需要知道 foreach 循环的用法 6 //$_GET $_POST $_COOKIE 数组 ,PHP变量 , PHP运算符,函数以下两行代码对这些知识的一个很好运用很适合学习使用。 7 foreach(Array('_GET','_POST','_COOKIE') as $_request) 8 { 9 foreach($$_request as $_k => $_v) 10 { ${$_k} = getVal($_v); } 11 } 12 //foreach()有两种用法: 13 //1: foreach(array_name as $value){ statement; }这里的array_name是你要遍历的数组名,每次循环中,array_name数组的当前元素的值被赋给$value,并且数组内部的下标向下移一步,也就是下次循环回得到下一个元素。 14 //2:foreach(array_name as $key => $value) { statement; } 这里跟第一种方法的区别就是多了个$key,也就是除了把当前元素的值赋给$value外,当前元素的键值也会在每次循环中被赋给变量$key。 15 //Array 基础知识关联数组 16 //$person = Array("name"=>"张三","age"=>'20'); 关联数组完全等于 17 //$person['name']="张三"; $person['age']=20; 18 // ${$_k} === $$_k; 原因先做大括号运算结果就是 $_k,在做¥$$_k运算。 19 //以上例子中 $_request 是个普通变量,经过第一层循环后的值分别是 _GET,_POST,_COOKIE 20 //$$_request;分别完全等于 $_GET , $_POST, $_COOKIE 也就是一个个数组 21 //getVal是个普通函数 22 //以上代码第一次循环后结果如下 23 //外层foreach第一次循环 24 foreach($_GET as $_k => $_v) 25 { $$_k = $_v; } //假设函数getVal原样输出 26 //外层foreach第二次循环 27 foreach($_POST as $_k => $_v) 28 { $$_k = $_v; } //假设函数getVal原样输出 29 //外层foreach第三次循环 30 foreach($_COOKIE as $_k => $_v) 31 { $$_k = $_v; } //假设函数getVal原样输出 32 33 //假设post方法传递参数如 $_POST['age'] = "28岁" 34 foreach($_POST as $_k => $_v) // $_k被实际赋值age , $_v被实际赋值 28岁 35 { $$_k = $_v; } //====== {$age = '28岁'} 36 37 //这样大家就能清楚的理解上面一个晦涩难懂的语句的执行流程和结果,通过这个语句我们可以发现学好基础知识很重要。