라이브러리

[PHP] OuterIterator::getInnerIterator - 현재 항목의 내부 반복자를 반환합니다.




OuterIterator::getInnerIterator

OuterIterator는 PHP의 IteratorAggregate 인터페이스를 구현한 클래스입니다. 이 인터페이스는 Iterator를 반환하는 `getIterator()` 메서드를 정의합니다. OuterIterator는 이 인터페이스를 구현하여 Iterator를 반환하는 메서드를 제공합니다.

OuterIterator::getInnerIterator은 OuterIterator의 인스턴스에서 InnerIterator를 반환하는 메서드입니다. InnerIterator는 OuterIterator의 인스턴스에 대한 Iterator입니다.

예제

#hostingforum.kr
php

class MyOuterIterator implements OuterIterator

{

    private $data;



    public function __construct(array $data)

    {

        $this->data = $data;

    }



    public function getInnerIterator()

    {

        return new MyInnerIterator($this->data);

    }

}



class MyInnerIterator implements InnerIterator

{

    private $data;

    private $index;



    public function __construct(array $data)

    {

        $this->data = $data;

        $this->index = 0;

    }



    public function rewind()

    {

        $this->index = 0;

    }



    public function current()

    {

        return $this->data[$this->index];

    }



    public function key()

    {

        return $this->index;

    }



    public function next()

    {

        $this->index++;

    }



    public function valid()

    {

        return $this->index < count($this->data);

    }

}



$data = ['apple', 'banana', 'cherry'];

$outerIterator = new MyOuterIterator($data);

$innerIterator = $outerIterator->getInnerIterator();



foreach ($innerIterator as $item) {

    echo $item . "
";

}



결과

#hostingforum.kr


apple

banana

cherry



위 예제에서, MyOuterIterator는 OuterIterator를 구현한 클래스입니다. MyOuterIterator의 인스턴스는 getInnerIterator 메서드를 호출하여 MyInnerIterator를 반환합니다. MyInnerIterator는 InnerIterator를 구현한 클래스입니다. MyInnerIterator의 인스턴스는 Iterator를 구현한 클래스입니다.

위 예제에서, OuterIterator의 인스턴스는 foreach 문을 사용하여 Iterator를 반복합니다. foreach 문은 InnerIterator의 인스턴스를 사용하여 Iterator를 반복합니다. 이 예제는 OuterIterator::getInnerIterator 메서드의 사용을 보여줍니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 10,077건 / 347 페이지

검색

게시물 검색