登录  /  注册

【php类与对象】遍历

不言
发布: 2018-04-13 16:49:56
原创
1267人浏览过

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

遍历对象

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

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

Example #1 简单的对象遍历(foreach 遍历所有其能够访问的可见属性。)<?phpclass MyClass{
    public $var1 = &#39;value 1&#39;;    public $var2 = &#39;value 2&#39;;    public $var3 = &#39;value 3&#39;;    
    protected $protected = &#39;protected var&#39;;    private   $private   = &#39;private var&#39;;    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;
        }
    }    public 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类与对象】遍历的详细内容,更多请关注php中文网其它相关文章!

智能AI问答
PHP中文网智能助手能迅速回答你的编程问题,提供实时的代码和解决方案,帮助你解决各种难题。不仅如此,它还能提供编程资源和学习指导,帮助你快速提升编程技能。无论你是初学者还是专业人士,AI智能助手都能成为你的可靠助手,助力你在编程领域取得更大的成就。
相关标签:
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
关于CSS思维导图的课件在哪? 课件
凡人来自于2024-04-16 10:10:18
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号