php对象遍历
来源:互联网 发布:java fastjson 转数组 编辑:程序博客网 时间:2024/05/16 04:51
因为php对象也是复合数据类型(还一种复合数据类型是数组),既然是复合数据类型,所以也能对其遍历,不过对对象的遍历其实就是对其属性的遍历
class A{
public $name = '酱油';
private $age = 18;
public $hobby = array();
public function test(){}
}
$a = new A;
foreach($a as $k=>$v){
var_dump($k,$v);
}
运行结果如下:
string(4) "name" string(6) "酱油" string(5) "hobby" array(0) { }
这里我们可以看到对象的遍历只遍历public属性(其实遍历也等于类外访问,限定修饰符依然有作用)
但是有的时候我们想对对象的遍历的时候,遍历的是其中的一个是数组的对象的元素,像上个例子中的hobby,如果我们想遍历对象的时候和遍历hobby属性的效果一样,那么我们需要实现Iterator这个接口,代码如下:
class A implements Iterator{
public $name = '酱油';
private $age = 18;
public $hobby = array('游泳','旅游','玩游戏');
public function test(){}
public function addPlayer($p) {
$this->hobby[] = $p;
}
public function rewind() { //初始化
reset($this->hobby);
}
public function valid() { //合法性验证
return key($this->hobby) !== NULL;
}
public function current() { //获得值变量
return current($this->hobby);
}
public function key() { //获得键变量
return key($this->hobby);
}
public function next() { //移动指针
next($this->hobby);
}
}
$a = new A;
foreach($a as $k=>$v){
var_dump($k,$v);
}
运行结果如下:
int(0) string(6) "游泳" int(1) string(6) "旅游" int(2) string(9) "玩游戏"
Foreach是根据当前对象所属类是否实现了Iterator接口来决定foreach遍历类型的。
- 【PHP】对象遍历
- php对象遍历
- php对象的遍历
- 75. PHP 遍历对象
- PHP之对象遍历
- PHP 遍历对象
- [php]对象遍历
- php 迭代 遍历对象
- PHP面向对象_对象的遍历
- php中的类与对象(遍历)
- php中foreach遍历类对象的总结
- 遍历对象
- 遍历对象
- php 遍历
- jq遍历对象,Jquery遍历对象,用forEach遍历对象
- JS 遍历对象 jQuery遍历对象
- PHP 遍历多维数组成一维,(数组元素可为对象)
- php laravel 阿里云对象存储 多图上传 前端手机端页面遍历输出
- ACE学习
- 关于网站备案
- PHP Notice: Undefined index: 报错
- 关于do{...}while(FALSE);
- 按键精灵里三层以上框架动态分析源码
- php对象遍历
- oracle sql
- 数据结构之树的基本术语与性质总结
- js方式的页面跳转
- HTML5 Geolocation用来定位用户的位置。
- 加壳学习笔记(三)-简单的脱壳思路&调试思路
- c# 匿名函数与委托
- 浅谈oracle中的context(上下文)Oracle Application Context
- NOJ [1246] Virtual Friends