您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

详解php类的Iterator模式的示例代码

2024/4/9 14:57:17发布11次查看
这就要讲到php的内置接口iterator了,php5开始支持了接口, 并且内置了iterator接口, 所以如果你定义了一个类,并实现了iterator接口,那么你的这个类对象就是zend_iter_object,否则就是 zend_iter_plain_object.
对于zend_iter_plain_object的类,foreach会通过hash_of获取该对象的默认属性数组,然后对该数组进行 foreach.
而对于zend_iter_object的类对象,则会通过调用对象实现的iterator接口相关函数来进行foreach, 所以, 对于这道笔试题, 可以作出如下的答案:
<?php class sample implements iterator { private $_items = array(1,2,3,4,5,6,7); public function __construct() { ;//void } public function rewind() { reset($this->_items); } public function current() { return current($this->_items); } public function key() { return key($this->_items); } public function next() { return next($this->_items); } public function valid() { return ( $this->current() !== false ); } } $sa = new sample(); foreach($sa as $key => $val){ print $key . "=>" .$val; } ?>
以上就是详解php类的iterator模式的示例代码的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product