php -- 对象遍历
对象遍历:foreach,遍历对象的公有属性(将公有属性的值和属性名赋值给对应$value和$key)
遍历某一个属性的数组,实现Iterator接口
接口iterator:类实现Iterator接口
current:获取当前数组元素的值$this->hobby[$this->position]
key:获取当前下标
next:数组指针下移
rewind:重置指针
valid:判断当前指针是否有效,使用key函数判断数组下标
<?php
//预定义接口
class Person implements Iterator{
//属性
private $point = 0;
protected $hobby = array('b' => '篮球','足球','台球','羽毛球');
protected $school = array('北京','上海','广州','武汉','郑州','成都');
//实现接口里的方法
//获取当前数组元素当前指针位置的元素值
public function current(){
return $this->hobby[$this->point];
}
//获取当前数组元素当前指针的位置(数组下标)
public function key(){
return $this->point;
}
//数组的指针下移
public function next(){
$this->point++;
}
//重置数组指针
public function rewind(){
$this->point = 0;
}
//判断数组的指针是否有效
public function valid(){
//判断当前指针所指向的位置是否有值即可
if(isset($this->hobby[$this->point])) return true;
return false;
}
}
//实例化对象
$person = new Person();
//遍历
foreach($person as $key => $value){
echo $key . ':' . $value . '<br/>';
}
php -- 对象遍历的更多相关文章
- js对象遍历
js对象遍历可以使用比较普遍的方法:如下 var ss={aa:"aa",bb:"bb"}; for(var s in ss){ console.info(&q ...
- javascript笔记整理(对象遍历封装继承)
一.javascript对象遍历 1.javascript属性访问 对象.属性名 对象['属性名'] var obj={name:'chen',red:function(){ alert(1);ret ...
- PHP中的对象遍历技巧
PHP中的对象遍历 对象的遍历,主要是指遍历对象中的,对外部可见属性.实际上就是用访问限制符public声明的属性,这点大家肯定很熟悉了.并且,在php中,遍历对象居然与遍历数组一样,都可以用使用fo ...
- js数组遍历和对象遍历
针对js各种遍历作一个总结分析,从类型用处:分数组遍历和对象遍历:还有性能,优缺点等. JS数组遍历: 1,普通for循环,经常用的数组遍历 var arr = [1,2,0,3,9]; for ( ...
- js对象遍历输出顺序错乱的问题
一.js对象遍历顺序错乱的原因 下边就来实践一下: var obj={'3':'ccc',name:'abc',age:23,school:'sdfds',class:'dfd',hobby:'dsf ...
- JS数组&对象遍历
遍历的总结,经常用到的,希望帮助你我成长. JS数组遍历: 1,普通for循环 var arr = [1,2,3,4,9]; for ( var i = 0; i <arr.length; i+ ...
- 用递归将嵌套的JSON对象遍历出来,转为二维数组
如题所示,代码如下: var arJsonNesting = [{id:1,name:"zhang3" ,children:[{id:2,name:"zhang33&qu ...
- js数组遍历和对象遍历小结
数组的遍历 for循环 for(var j = 0,len = arr.length; j < len; j++){ console.log(arr[j]); } forEach,性能比for还 ...
- js 数组遍历 对象遍历
一.数组遍历 1,普通for循环,经常用的数组遍历 var arr = [1,2,0,3,9]; for ( var i = 0; i <arr.length; i++){ console.lo ...
随机推荐
- Cleaner ITweenPath Source
iTweenPath.cs [pyg language="csharp" s="monokai" ] //Slight additions for a clea ...
- unity3d 自带截屏
Application.CaptureScreenshot("Screenshot.png"); 截屏后的文件所在路径:Application.persistentDataPath
- Android 使用Post方式提交数据
在Android中,提供了标准Java接口HttpURLConnection和Apache接口HttpClient,为客户端HTTP编程提供了丰富的支持. 在HTTP通信中使用最多的就是GET和POS ...
- XML相关转换
1.将DataTable转换成xml字符串 //将DataTable转换成xml字符串: public string ConvertDataTableToXml(DataTable dt) { Mem ...
- EAST 自然场景文本检测
自然场景文本检测是图像处理的核心模块,也是一直想要接触的一个方面. 刚好看到国内的旷视今年在CVPR2017的一篇文章:EAST: An Efficient and Accurate S ...
- pandas contact 之后,若要用到index列,要记得用reset_index去处理index
# -*- coding: utf-8 -*- import pandas as pd import sys df1 = pd.DataFrame({ 'A': ['A0', 'A1', 'A2', ...
- NPM 模块收集
cross-env https://www.npmjs.com/package/cross-env 在package.json设置环境变量的时候,会有兼容性问题,如: { "scripts& ...
- django 常用命令 详解
check compilemessages createcachetable dbshell diffsettings dumpdata flush ...
- Java Persistence with MyBatis 小结2
MyBatis 最关键的组成部分是 SqlSessionFactory,我们可以从中获取 SqlSession,并执行映射的 SQL 语句.SqlSessionFactory 对象可以通过基于 XML ...
- Linux find 命令概览
Linux下find命令在目录结构中搜索文件,并执行指定的操作.Linux下find命令提供了相当多的查找条件,功能很强大.由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时 ...