• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

【php类与对象】遍历

php 搞代码 3年前 (2022-01-22) 9次浏览 已收录 0个评论

本篇文章给大家分享的内容是关于【php类与对象】遍历 ,有着一定的参考价值,有需要的朋友可以参考一下

遍历对象

PHP 5 提供了一种定义对象的方法使其可以通过单元列表来遍历

默认情况下,所有可见属性都将被用于遍历。

Example #1 简单的对象遍历(foreach 遍历所有其能够访问的可见属性。)<?phpclass MyClass{    public $var1 = 'value 1';    public $var2 = 'value 2';    public $var3 = 'value 3';        protected $protected = 'protected var';    private   $private   = 'private var';    function iterateVisible() {       echo "MyClass::iterateVisible:\n";       foreach($this as $key => $value) {           print "$key => $value\n";       }    }}$class = new MyClass();foreach($class as $key => $value) {    print "$key => $value\n";}echo "\n";$class->iterateVisible();?>

实现 Iterator 接口(预定义接口)。可以让对象自行决定如何遍历以及每次遍历时哪些值可用。

#接口摘要#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 )  //判断当前索引游标指向的元素是否有效  }  当一个实现了Iterator接口的对象,被foreach遍历时,会自动调用这些方法。调用的循序是:rewind() -> valid() -> current() -> key() -> next()
Example #2 实现 Iterator 接口的对象遍历<?phpclass MyIterator implements Iterator{    private $var = array();    public function __construct($array)    {        if (is_array($array)) {            $this->var = $array;        }    }    publi<strong>(本文来源gaodai#ma#com搞@@代~&码网</strong><pre>搞代gaodaima码

c function rewind() { echo "rewinding\n"; reset($this->var); } public function current() { $var = current($this->var); echo "current: $var\n"; return $var; } public function key() { $var = key($this->var); echo "key: $var\n"; return $var; } public function next() { $var = next($this->var); echo "next: $var\n"; return $var; } public function valid() { $var = $this->current() !== false; echo "valid: {$var}\n"; return $var; }}$values = array(1,2,3);$it = new MyIterator($values);foreach ($it as $a => $b) { print "$a: $b\n";}?>

相关推荐:

【php类与对象】匿名类

【php类与对象】重载

以上就是【php类与对象】遍历的详细内容,更多请关注搞代码gaodaima其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:【php类与对象】遍历

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址