>  기사  >  백엔드 개발  >  PHP 사전 정의 인터페이스의 반복자 사용 예

PHP 사전 정의 인터페이스의 반복자 사용 예

coldplay.xixi
coldplay.xixi앞으로
2020-07-14 17:25:381856검색

PHP 사전 정의 인터페이스의 반복자 사용 예

이 문서의 예에서는 PHP 사전 정의 인터페이스의 Iterator 사용법을 설명합니다. 다음과 같이 참조용으로 모든 사람과 공유하세요.

Iterator 인터페이스

내부적으로 자체 외부 반복자 또는 클래스 인터페이스를 반복할 수 있습니다.

인터페이스 요약

Iterator extends Traversable {
    /* 方法 */
    abstract public current ( void ) : mixed
    abstract public key ( void ) : scalar
    abstract public next ( void ) : void
    abstract public rewind ( void ) : void
    abstract public valid ( void ) : bool
}

예:

<?php
class myIterator implements Iterator
{
  private $position = 0;
  private $array = array(
    &#39;first_element&#39;,
    &#39;second_element&#39;,
    &#39;last_element&#39;,
  );

  /**
   * 重置键的位置
   */
  public function rewind(): void
  {
    var_dump(__METHOD__);
    $this->position = 0;
  }

  /**
   * 返回当前元素
   */
  public function current()
  {
    var_dump(__METHOD__);
    return $this->array[$this->position];
  }

  /**
   * 返回当前元素的键
   * @return int
   */
  public function key(): int
  {
    var_dump(__METHOD__);
    return $this->position;
  }

  /**
   * 将键移动到下一位
   */
  public function next(): void
  {
    var_dump(__METHOD__);
    ++$this->position;
  }

  /**
   * 判断键所在位置的元素是否存在
   * @return bool
   */
  public function valid(): bool
  {
    var_dump(__METHOD__);
    return isset($this->array[$this->position]);
  }
}

$it = new myIterator;

foreach ($it as $key => $value) {
  var_dump($key, $value);
  echo "\n";
}

출력 결과:

string 'myIterator::rewind' (길이=18)
string 'myIterator::valid' (길이=17)
string 'myIterator:: current' (길이=19)
string 'myIterator::key' (길이=15)
int 0
string 'first_element' (길이=13)
string 'myIterator::next' (길이=16)
string 'myIterator ::valid' (길이=17)
string 'myIterator::current' (길이=19)
string 'myIterator::key' (길이=15)
int 1
string 'second_element' (길이=14)
string 'myIterator::next' (길이=16)
string 'myIterator::valid' (길이=17)
string 'myIterator::current' (길이=19)
string 'myIterator::key' (길이=15)
int 2
string 'last_element' (길이=12)
string 'myIterator::next' (길이=16)
string 'myIterator::valid' (길이=17)

결과에서 알 수 있는 것은 클래스가 구현되면 Iterator 인터페이스는 클래스 인스턴스 데이터 세트를 구현할 때 먼저 데이터 세트의 키를 재설정한 다음 점차적으로 뒤로 이동하며 매번 현재 요소와 현재 키를 반환합니다.

관련 학습 권장 사항: 초보부터 마스터까지 PHP 프로그래밍

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

성명:
이 기사는 jb51.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제