//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岁'} //这样大家就能清楚的理解上面一个晦涩难懂的语句的执行流程和结果,通过这个语句我们可以发现学好基础知识很重要。
php中foreach()函数与Array数组经典案例讲解的更多相关文章
-
Java中forEach, 用来遍历数组
这里的for是Java中forEach, 用来遍历数组的.for(int i : d) 就是遍历int型数组d的 每一次访问数组d的时候读取的数据放入int型的i中.和for(int i=0;i< ...
-
PHP中array_merge函数与array+array的区别
在PHP中可以使用array_merge函数和两个数组相加array+array的方式进行数组合并,但两者效果并不相同,下面为大家介绍两者具体的使用区别. 区别如下: 当下标为数值时,array_me ...
-
jQuery基础的工厂函数以及定时器的经典案例
1. jQuery的基本信息: 1.1 定义: jQuery是JavaScript的程序库之一,它是JavaScript对象和实用函数的封装, 1.2 作用: 许多使用JavaScript能实现的交 ...
-
PHP中使用函数array_merge()合并数组
如果明白数组其实就是map的话,我想你就会明白array_merge为什么要这么实现了 PHP中合并数组分成两种情况 1.如果这两个数组中有相同的字符串键名: <?php header('Con ...
-
C# 获得枚举值中所有数据到Array(数组)中
Array LogType = Enum.GetValues(LogTypes.登录.GetType()); public enum LogTypes { 登录, 添加, 修改, 删除, 导出, 异常 ...
-
MyBatis中foreach传入参数为数组
一.当只有一个参数,并且这个参数是数组时 接口方法的参数不需要添加@Param注释,collection="array" 示例 接口的方法 void deleteMulti(Str ...
-
IT兄弟连 Java语法教程 数组 经典案例
案例需求: 编程实现双色球中奖号码的生成 1)应用知识: ● 数组的声明 ● 数组的使用 ● for循环 2)需求解析: 在该程序中,需要定义一个长度为7的数组,用来存储中奖号码,使用Rando ...
-
Array数组基本案例:图书基本录入输出系统
import java.util.Scanner; public class ArrayTest{ public static void main(String args[]){ Scanner sc ...
-
js 中对于this 的理解的 经典案例
function Foo(){ getName = function(){console.log(1);}; return this; }Foo.getName = function(){consol ...
随机推荐
-
转:js中this、call、apply的用法
(一)关于this首先关于this我想说一句话,这句话记住了this的用法你也就差不多都能明白了:this指的是当前函数的对象.这句话可能比较绕,我会举出很多例子和这句话呼应的!(看下文)1.首先看下 ...
-
NET Core中怎么使用HttpContext.Current
NET Core中怎么使用HttpContext.Current 阅读目录 一.前言 二.IHttpContextAccessor 三.HttpContextAccessor 回到目录 一.前言 我们 ...
-
N天前涨停过的票
zd(0,300,10)B2:=REF(C,1)*1.1-C;B3:BARSLAST(B2<0.01)=ZD01;{n天前涨停股票}
-
Hive 0.12 Caused by: MetaException(message:Version information not found in metastore. )解决方法
配置完成Mysql存储元数据信息,启动后测试show tables报错ERROR exec.DDLTask: org.apache.hadoop.hive.ql.metadata.HiveExcept ...
-
Everything开机自启
第一步:关闭自动启动 在设置中关闭everything开机自动启动. 第二步:创建计划任务 点击“开始”—“任务计划程序”—“创建任务” 首先设置任务的名称等,注意一定要勾选“使用最高权限运行”. 然 ...
-
nyoj1246 逃离妖洞 BFS
逃离妖洞 描述 唐僧不小心又掉入妖怪的迷宫了.这个迷宫有n行m列,共n*m个方格.有的方格是空的,唐僧可以站在上面,有些是有障碍物的不能站.每次唐僧可以移动到相邻的8个空方格上.但是有些情况不 ...
-
16.2-uC/OS-III同步 (事件标志组)
事件标志组 1.当任务要与多个事件同步时可以使用事件标志.若其中的任意一个事件发生时任务被就绪, 叫做逻辑或(OR).若所有的事件都发生时任务被就绪,叫做逻辑与( AND). 2.用户可以创建任意个事 ...
-
Spring4.2+SpringMVC+Mybatis3.4的集成(转-)
文章转自 http://blog.csdn.net/jimolangge123/article/details/49210363 首先说明一下Web.xml中配置项的执行过程: <context ...
-
08-02 Java 代码块,代码块执行的先后顺序问题
代码块 /* 代码块:在Java中,使用{}括起来的代码被称为代码块. 根据其位置和声明的不同,可以分为 局部代码块:局部位置,用于限定变量的生命周期. 构造代码块:在类中的成员位置,用{}括起来的代 ...
-
shell脚本学习—Shell执行脚本
Shell作用是解释执行用户的命令,用户输入一条命令,Shell就解释执行这一条,这种方式称为交互式,但还有另一种执行命令的方式称为批处理方式,用户事先写一个Shell脚本,Shell可以一次把这些命 ...