亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

PHP基礎之類和對象14——遍歷對象

瀏覽:4日期:2022-09-14 18:39:26

PHP 5 提供了一種定義對象的方法使其可以通過單元列表來遍歷,例如用?foreach?語句。默認情況下,所有可見屬性都將被用于遍歷。

Example #1 簡單的對象遍歷

class MyClass{ public $var1 = 1; public $var2 = 2; public $var3 = 3; protected $protected = ’protected var’; private $private = ’private var’; function iterateVisible(){echo 'MyClass::iterateVisible:<br>';foreach($this as $key => $value){ print '$key=>$value<br>';} }}?$class = new MyClass();foreach($class as $key => $value){ print '$key => $value<br>';}echo '<br>';$class->iterateVisible();

輸出結果:

var1 => 1

var2 => 2

var3 => 3

MyClass::iterateVisible:

var1=>1

var2=>2

var3=>3

protected=>protected var

private=>private var

如上所示,foreach?遍歷了所有其能夠訪問的可見屬性。

更進一步,可以實現?Iterator接口。可以讓對象自行決定如何遍歷以及每次遍歷時那些值可用。

class MyIterator implements Iterator{ private $var = array(); public function __construct($array) {if(is_array($array)){ $this->var = $array;} } public function rewind(){echo 'rewinding<br>';reset($this->var); } public function current(){$var = current($this->var);echo 'current:$var<br>';return $var; } public function key(){$var = key($this->var);echo 'key:$var<br>';return $var; } public function next(){$var = next($this->var);echo 'next:$var<br>';return $var; } public function valid(){$var = $this->current()!==false;echo 'valid:$var<br>';return $var; }}$values = array(1,2,3);$it = new MyIterator($values);foreach($it as $a => $b){ print '$a:$b<br>';}

輸出結果:

rewinding

current:1

valid:1

current:1

key:0

0:1

next:2

current:2

valid:1

current:2

key:1

1:2

next:3

current:3

valid:1

current:3

key:2

2:3

next:

current:

valid:

可以用?IteratorAggregate接口以替代實現所有的?Iterator?方法。IteratorAggregate?只需要實現一個方法?IteratorAggregate::getIterator(),其應返回一個實現了?Iterator?的類的實例。

Example #3 通過實現 IteratorAggregate 來遍歷對象

include_once(’class2.php’);class MyCollection implements IteratorAggregate{ private $items = array(); private $count = 0; public function getIterator(){ return new MyIterator($this->items); } public function add($value){$this->items[$this->count++] = $value; }}$coll = new MyCollection();$coll -> add(’1’);$coll -> add(’2’);$coll -> add(’3’);foreach($coll as $k => $v){ echo 'key/value:[$k->$v]<br><br>';}

輸出結果:

rewinding

current:1

valid:1

current:1

key:0

key/value:[0->1]

next:2

current:2

valid:1

current:2

key:1

key/value:[1->2]

next:3

current:3

valid:1

current:3

key:2

key/value:[2->3]

next:

current:

valid:

標簽: PHP
相關文章:
主站蜘蛛池模板: 日本粉嫩毛片视频 | 国产农村妇女成人精品 | 久久婷婷婷 | 色婷婷视频 | 免费爱爱视频 | 亚洲欧美一区二区三区在线播放 | 南京巨根无套操到你窒息 | 亚洲欧美一区在线 | 1769国内精品免费视频视频 | 成人国产精品一区二区网站 | 国产三级a三级三级 | 欧美人妖猛交 | 国产成人99久久亚洲综合精品 | 国产黄色片大全 | 视频国产在线 | 久久综合一区二区三区 | 免费观看很黄很色的大片 | 欧美超长黑吊 | 久久99精品久久久久久青青91 | 国外成人免费高清激情视频 | 老人与老人一级毛片 | 一二级黄色片 | 91最新免费观看在线 | 亚洲第一区在线观看 | 夜色www国产精品资源站 | 欧美一级毛片免费观看视频 | 日韩午夜高清福利片在线观看 | 久久婷婷五色综合夜啪 | 久久天天综合 | 日本欧美国产精品第一页久久 | 亚洲精品一区二区三区在线看 | 51国产视频| 免费成人黄色大片 | 一级视频在线 | 欧美一级看片免费观看视频在线 | 亚洲精品一区二区三区网址 | 亚洲视频国产视频 | 看黄色.com | 国产真实伦偷精品 | 日韩电影久久久被窝网 | 日韩欧美一级毛片精品6 |