php中each()与list()函数
<?php
$fruit = array('a' => 'apple', 'b' => 'banana', 'c' => 'cranberry');
reset($fruit);
while (list($key, $val) = each($fruit)) {
echo "$key => $val\n";
}
?>
以上例程会输出:
这是从官方网站查询到的,很费解while里面的条件判断语句,查询了不少资料也没看出个所以然,不得不自己动手看一下:
<?php
list($b, $c, $a[$b][$c]) = array('a', 'b', 'c');
print_r($a);
?>
运行后出现的结果是:
Notice: Undefined variable: c in F:\www\my\test2.php on line 9
Array
(
[] => Array
(
[] => c
)
)
<?php
list($a[$b][$c], $b, $c) = array('a', 'b', 'c');
print_r($a);
?>
运行后出现的结果是:
Array
(
[b] => Array
(
[c] => a
) )
2.list() 仅能用于数字索引的数组并假定数字索引从 0 开始。
a
<?php
$aee = array(1=>'a','c'=>'kk',3=>'b',2=>'d');
list($a,$b,$c)=$aee;
echo "a:$a b:$b c:$c\n".'<br/>';
?>
运行后出现的结果是:
Notice: Undefined offset: 0 in F:\www\my\test2.php on line 9
a: b:a c:d 2)如果有两个相同的索引不同的值,则会以后面索引的值为准,如下所示:
<?php
$aee = array(1=>'a','bb'=>'dd',2=>'kk',0=>'b',1=>'d');
list($a,$b,$c)=$aee;
echo "a:$a b:$b c:$c\n".'<br/>';
?>
运行后出现的结果是:
a:b b:d c:kk
表明$b的值是d而不是a。
3)由以上几个例子可以看出,list()不仅用于数字索引的数组并假定数字索引从 0 开始的,而且也可以用于有数字索引的数组,前提条件是数字索引是从0开始的连续数字;
它会自动选择数字索引过滤非数字索引,上面官网的例子中的判断条件也就清楚了。
3.上面官网例子中reset($fruit);放在while()语句上面作用并不大,应该放到它下面才会释放由于each()而导致的数组指针的指向而指向第一个单元,如下面的例:
<?php
$fruit = array('a' => 'apple', 'b' => 'banana', 'c' => 'cranberry');
while (list($key, $val) = each($fruit)) {
echo "$key => $val\n";
}
reset($fruit);
list($a,$b) = each($fruit);
echo $a.'nihao';
?>
运行后出现的结果是:
a => apple
b => banana
c => cranberry
anihao
<?php
$fruit = array('a' => 'apple', 'b' => 'banana', 'c' => 'cranberry');
reset($fruit);
while (list($key, $val) = each($fruit)) {
echo "$key => $val\n";
}
list($a,$b) = each($fruit);
echo $a.'nihao';
?>
运行后出现的结果是:
a => apple
b => banana
c => cranberry
nihao
4.上面官网例子根据李炎恢老师的讲解,应该完善一下,代码如下:
<?php
$fruit = array('a' => 'apple', 'b' => 'banana', 'c' => 'cranberry');
reset($fruit);
while (!!list($key, $val) = each($fruit)) {
echo "$key => $val\n";
}
?>
while语句里面应该是条件判断语句,转换成布尔值后比较合理。
php中each()与list()函数的更多相关文章
- SQL中Round(),Floor(),Ceiling()函数的浅析
项目中的一个功能模块上用到了标量值函数,函数中又有ceiling()函数的用法,自己找了一些资料,对SQL中这几个函数做一个简单的记录,方便自己学习.有不足之处欢迎拍砖补充 1.round()函数遵循 ...
- avascript中的this与函数讲解
徐某某 一个半路出家的野生程序员 javascript中的this与函数讲解 前言 javascript中没有块级作用域(es6以前),javascript中作用域分为函数作用域和全局作用域.并且,大 ...
- PHP中有关正则表达式的函数集锦
之前学正则表达式的目的是想从网上抓取点小说啊,文档啊,还有获取相应的视频连接然后批量下载.当时初学PHP根本不知道PHP有专门抓包的工具,就像Simple_html_dom.php(在我的其他博文中有 ...
- SQL SERVER中用户定义标量函数(scalar user defined function)的性能问题
用户定义函数(UDF)分类 SQL SERVER中的用户定义函数(User Defined Functions 简称UDF)分为标量函数(Scalar-Valued Function)和表值函数(T ...
- mysql中bit_count和bit_or函数的含义
翻阅mysql手册时,看到有个示例使用了bit_or方法来去除重复的数据,一开始没看明白,后来看明白之后感觉非常巧妙.示例要实现的功能就是计算每月有几天有访问,先把示例摘录在这里. 1 2 3 4 5 ...
- C#中的日期处理函数
C#中的日期处理函数 //2013年4月24日 this.TextBox6.Text = System.DateTime.Now.ToString("D"); //2013-4-2 ...
- 在Excel中使用频率最高的函数的功能和使用方法
在Excel中使用频率最高的函数的功能和使用方法,按字母排序: 1.ABS函数 函数名称:ABS 主要功能:求出相应数字的绝对值. 使用格式:ABS(number) 参数说明:number代表需要求绝 ...
- Loadrunner中web_find和web_reg_find函数的使用与区别
总结一下Loadrunner中的检查点函数,主要介绍两个函数:web_find()和web_reg_find():这两个函数均用于内容的查找,但两者也有本质的区别,具体介绍如下:一.web_find( ...
- python 中的sort 和java中的Collections.sort()函数的使用
x=[1,2,3] x.sort()对的,x这个都变了 y=x.sort()错误 y=sorted(x)对的,x拍好序的一个副本 python中用匿名函数和自定义函数排序:(很奇怪的是比较函数返回的是 ...
- Unity3D中自带事件函数的执行顺序(转)
原文:http://www.jianshu.com/p/1d93ece664e2 在Unity3D脚本中,有几个Unity3D自带的事件函数按照预定的顺序执行作为脚本执行.其执行顺序如下: 编辑器(E ...
随机推荐
- iOS - UI - UIScrollView
1.UIScrollView 滚动视图 // 滚动视图 UIScrollView* scrollView = [[UIScrollView alloc]initWithFrame:self.view. ...
- uva 11234 Expressions 表达式 建树+BFS层次遍历
题目给出一个后缀表达式,让你求从下往上的层次遍历. 思路:结构体建树,然后用数组进行BFS进行层次遍历,最后把数组倒着输出就行了. uva过了,poj老是超时,郁闷. 代码: #include < ...
- java8中的Stream
Collection.stream() / parallelStream() 1. Stream 1)Filter stringCollection .stream().filter((s) - ...
- Http StatuCode说明
HTTP 200 - 文件被正常的访问 HTTP 302 - 临时重定向 HTTP 400 - 请求无效 HTTP 401.1 - 未授权:登录失败 HTTP 401.2 - 未授权:服务器配置问题导 ...
- oracle PL/SQL(procedure language/SQL)程序设计(续集)之PL/SQL函数
PL/SQL函数 examples:“ 构造一个邮件地址 v_mailing_address := v_name||CHR(10)|| ...
- Kinect For Windows V2开发日志八:侦测、追踪人体骨架
简介 Kinect一个很强大的功能就是它可以侦测到人体的骨骼信息并追踪,在Kinect V2的SDK 2.0中,它最多可以同时获取到6个人.每个人25个关节点的信息,并且通过深度摄像头,可以同时获取到 ...
- 在centos中创建nginx启动脚本
1. 建立脚本文件nginxd [root@could]# vi /etc/init.d/nginxd 插入以下内容 #!/bin/bash## chkconfig: - 85 15# descrip ...
- python15-day1课堂随机
print("Hello world") #变量定义:一个在内存储存数据的容器#意义:为什么有变量,因为它保存程序执行的中间结果或状态以供后面的低吗进行调用 day1 = 200+ ...
- 包装BufferedReader的readLine()输出行号
定义一个类,实现与被增强对象相同的接口,或继承这个类,视情况而定 定义一个变量,记住被增强的对象 定义一个构造函数,接收被增强的对象 覆盖要增强的方法 对于不需要增强的方法,调用被增强对象原有的方法 ...
- 跟我学习dubbo-Dubbo管理控制台的安装(3)
Dubbo管理控制台的安装 1.Dubbo管理控制台的主要作用:服务治理 2.管理控制台主要包含: 路由规则 动态配置 服务降级 访问控制 权重调整 负载均衡等管理功能 3.管理控制台版本: 当前稳定 ...