【面试题】使对象可以像数组一样进行foreach循环,要求属性必须是私有
程序员文章站
2022-05-28 15:41:22
...
主旨:PHP5提供了一种迭代(iteration)对象的功能,就像使用数组那样,可以通过foreach 来遍历对象中的属性。默认情况下,在外部迭代只能得到外部可见的属性的值,可在内部迭代自己的外部迭代器或类的接口。
Iterator extends Traversable { /* 方法 */ abstract public mixed current ( void ) abstract public scalar key ( void ) abstract public void next ( void ) abstract public void rewind ( void ) abstract public boolean valid ( void ) }
<?php class Sample implements iterator{ private $var = array(1,2,3,4,5); public function __construct(){} public function rewind(){ reset($this->var);} public function current(){return current($this->var);} public function key(){return key($this->var);} public function next(){return next($this->var);} public function valid(){return ($this->current()!==false);} } $s = new Sample(); foreach($s as $k=>$v){ echo $k.'='.$v.'<br/>';} ?>
上一篇: jmv第四节-垃圾回收器详细讲解
下一篇: 【面试题】php 垃圾收集机制