Rumah > pembangunan bahagian belakang > tutorial php > 24php中使用Iterator,ArrayAccess和Countable

24php中使用Iterator,ArrayAccess和Countable

WBOY
Lepaskan: 2016-07-29 09:01:38
asal
1206 orang telah melayarinya

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

<?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]);
    }
    
}

Salin selepas log masuk

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

<?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);
Salin selepas log masuk

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

<?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);
Salin selepas log masuk


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

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan