迭代器往往被我們用來在資料庫中讀取大量的資料時方便資料的管理。
<?php class Basket implements Iterator{ private $fruits = array('apple', 'banna', 'pear', 'orange', 'watermelon'); 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);
以上就介紹了24php中使用Iterator,ArrayAccess和Countable,包含了方面的內容,希望對PHP教程有興趣的朋友有所幫助。