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

最新文章

  1. [No000019]不想背单词?看看游戏能否帮你
  2. 2016.6.23 PHP实现新闻发布系统主体部分
  3. MVC清除缓存设置+数据验证
  4. C#中如何截取Windows消息来触发自定义事件
  5. Android开发框架
  6. BZOJ 1179 [Apio2009]Atm(强连通分量)
  7. CodeForces 747D Winter Is Coming
  8. Filebeat 启动关闭流程
  9. @RequestParam、@RequestBody和@ModelAttribute区别
  10. springboot整合jsp
  11. python+requests+excel+unittest+ddt接口自动化数据驱动并生成html报告
  12. Eigen使用矩阵作为函数参数
  13. 地图上道路编号中的G S X Y
  14. class="no-js"
  15. sed命令替换
  16. android switch控件
  17. 合泰 HOLTEK 单片机中 I/T O/T 什么意思?
  18. 网页中的图片查看器viewjs使用
  19. vs 编译error1083
  20. HTML5跨域请求--POST方式

热门文章

  1. CentOS搭建GIT服务器【一】-仓库搭建以及基于gitosis的SSH方式访问
  2. EL表达式及其定义和使用 转
  3. c#复制图片到粘贴板
  4. spring使用ehcache
  5. JAVA-应用easyui
  6. [Webpack 2] Tree shaking with Webpack 2
  7. TabHost 两种使用方法 直接让一个Activity 继承TabActivity 和 利用findViwById()方法取得TagHost组件
  8. 编写跨平台代码之memory alignment
  9. 网络学习笔记----01--pathping跟踪数据包路径
  10. 多目标遗传算法 ------ NSGA-II (部分源码解析) 快速排序代码 sort.c