首页 > 后端开发 > php教程 > 24php中使用Iterator,ArrayAccess和Countable

24php中使用Iterator,ArrayAccess和Countable

WBOY
发布: 2016-07-29 09:01:38
原创
1208 人浏览过

    迭代器往往被我们用来在数据库中读取大量的数据时方便数据的管理。

<?php class Basket implements Iterator{
    private $fruits = array(&#39;apple&#39;, &#39;banna&#39;, &#39;pear&#39;, &#39;orange&#39;, &#39;watermelon&#39;);
    private $position = 0; 
    
    //返回当前的元素
    public function current(){
        return $this->fruits[$this->position];
    }
    //返回当前的键
    public function key(){
        return $this->position
    }
    //下移一个元素
    public function next(){
        ++$this->position;
    }
    
    //移动到第一个元素
    public function rewind(){
        $this->position = 0;
    }
    //判断后续是否还有元素
    public function valid(){
        return isset($this->fruits[$this->position+1]);
    }
    
}

登录后复制

    使对象中的数据可以像数组一样访问

<?php class obj implements ArrayAccess{
    private $container = array();

    public function __construct(){
        $this->container = array(
            "one" => 1,
            "two" => 2,
            "three" => 3
            
        );
    }
    
    //赋值
    public function offsetSet($offset, $value){
        if(is_null($offset)){
            $this->container[] = $value;
        } else {
            $this->container[$offset] = $value;
        }
    }
    
    //某键是否存在
    public function offsetExists($offset){
        return isset($this->container[$offset]);
    }
    
    //删除键值
    public function offsetUnset($offset){
        unset($this->container[$offset]);
    }
    
    //获取键对应的值
    public function offsetGet($offset){
        return isset($this->container[$offset])?$this->container[$offset]:null;
    }
}

$obj = new obj();
var_dump(isset($obj["two"]));
var_dump($obj["two"]);
unset($obj["two"]);
var_dump(isset($obj["two"]));
$obj['two'] = "A value";

var_dump($obj['two']);
echo $obj['two'];
$obj[] = 'Append 1';
$obj[] = 'Append 2';
$obj[] = 'Append 3';
var_dump($obj);
登录后复制

    使对象可以对属性进行计数

<?php class Basket implements Countable{
    private $fruits = array(&#39;apple&#39;, &#39;banna&#39;, &#39;pear&#39;, &#39;orange&#39;, &#39;watermelon&#39;);
    public function count(){
        return count($this->fruits);
    }
}

$basket = new Basket();
echo count($basket);
登录后复制


以上就介绍了24php中使用Iterator,ArrayAccess和Countable,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板