데이터베이스에서 많은 양의 데이터를 읽을 때 데이터 관리를 용이하게 하기 위해 반복자를 자주 사용합니다.
<?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);
it 객체는 속성을 계산할 수 있습니다
<?php class Basket implements Countable{ private $fruits = array('apple', 'banna', 'pear', 'orange', 'watermelon'); public function count(){ return count($this->fruits); } } $basket = new Basket(); echo count($basket);
위 내용은 관련 내용을 포함하여 24php에서 Iterator, ArrayAccess 및 Countable의 사용을 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.