>  기사  >  백엔드 개발  >  PHP 반복자 인터페이스 Iterator의 사용 분석

PHP 반복자 인터페이스 Iterator의 사용 분석

jacklove
jacklove원래의
2018-07-04 17:48:221700검색

이 글에서는 주로 PHP 반복자 인터페이스 Iterator의 사용법을 소개하고, PHP 반복자 인터페이스 Iterator의 개념, 기능, 정의 및 사용법을 예제 형식으로 분석합니다. 필요한 친구가 참고할 수 있습니다.

이 글에서는 PHP 반복자 인터페이스에 대해 설명합니다. 예제와 함께 Iterator 사용법. 참조를 위해 모든 사람과 공유하세요. 세부 사항은 다음과 같습니다.

PHP Iterator 인터페이스의 기능은 객체가 자체 방식으로 내부 데이터를 반복하여 주기적으로 액세스할 수 있도록 하는 것입니다. 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의 사용을 보여주는 간단한 예입니다.

<?php
/**
 * 该类允许外部迭代自己内部私有属性$_test,并演示迭代过程
 *
 * @author 疯狂老司机
 */
class TestIterator implements Iterator {
  /*
   * 定义要进行迭代的数组
   */
  private $_test = array(&#39;dog&#39;, &#39;cat&#39;, &#39;pig&#39;);
  /*
   * 索引游标
   */
  private $_key = 0;
  /*
   * 执行步骤
   */
  private $_step = 0;
  /**
   * 将索引游标指向初始位置
   *
   * @see TestIterator::rewind()
   */
  public function rewind() {
    echo &#39;第&#39;.++$this->_step.&#39;步:执行 &#39;.__METHOD__.&#39;<br>&#39;;
    $this->_key = 0;
  }
  /**
   * 判断当前索引游标指向的元素是否设置
   *
   * @see TestIterator::valid()
   * @return bool
   */
  public function valid() {
    echo &#39;第&#39;.++$this->_step.&#39;步:执行 &#39;.__METHOD__.&#39;<br>&#39;;
    return isset($this->_test[$this->_key]);
  }
  /**
   * 将当前索引指向下一位置
   *
   * @see TestIterator::next()
   */
  public function next() {
    echo &#39;第&#39;.++$this->_step.&#39;步:执行 &#39;.__METHOD__.&#39;<br>&#39;;
    $this->_key++;
  }
  /**
   * 返回当前索引游标指向的元素的值
   *
   * @see TestIterator::current()
   * @return value
   */
  public function current() {
    echo &#39;第&#39;.++$this->_step.&#39;步:执行 &#39;.__METHOD__.&#39;<br>&#39;;
    return $this->_test[$this->_key];
  }
  /**
   * 返回当前索引值
   *
   * @return key
   * @see TestIterator::key()
   */
  public function key() {
    echo &#39;第&#39;.++$this->_step.&#39;步:执行 &#39;.__METHOD__.&#39;<br>&#39;;
    return $this->_key;
  }
}
$iterator = new TestIterator();
foreach($iterator as $key => $value){
  echo "输出索引为{$key}的元素".":$value".&#39;<br><br>&#39;;
}
?>

위의 예는 다음을 출력합니다.

第1步:执行 TestIterator::rewind
第2步:执行 TestIterator::valid
第3步:执行 TestIterator::current
第4步:执行 TestIterator::key
输出索引为0的元素:dog
第5步:执行 TestIterator::next
第6步:执行 TestIterator::valid
第7步:执行 TestIterator::current
第8步:执行 TestIterator::key
输出索引为1的元素:cat
第9步:执行 TestIterator::next
第10步:执行 TestIterator::valid
第11步:执行 TestIterator::current
第12步:执行 TestIterator::key
输出索引为2的元素:pig
第13步:执行 TestIterator::next
第14步:执行 TestIterator::valid

볼 수 있듯이 위의 예에서 valid가 false를 반환하면 루프가 종료됩니다.

당신이 관심을 가질 만한 기사:

PHP 집계 반복자 인터페이스 IteratorAggregate의 사용 분석

PHP 감지 인터페이스의 자세한 사용 분석 Traversable

PHP 사용자 정의 직렬화 인터페이스의 사용 분석 직렬화 가능 설명

PHP의 Opcache 가속

사용법을 자세히 알아보세요.

위 내용은 PHP 반복자 인터페이스 Iterator의 사용 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.