라이브러리

[PHP] InfiniteIterator::__construct - InfiniteIterator를 구성합니다.




PHP의 InfiniteIterator는 무한 반복을 지원하는 Iterator 인터페이스를 구현한 클래스입니다. 이 클래스는 IteratorAggregate 인터페이스를 구현하여 Iterator를 반환하는 메서드를 제공합니다. InfiniteIterator는 무한 반복을 지원하기 때문에, 반복을 종료하는 메서드가 없습니다.

InfiniteIterator::__construct


InfiniteIterator::__construct 메서드는 InfiniteIterator 객체를 생성합니다. 이 메서드는 IteratorAggregate 인터페이스의 __construct 메서드를 호출하여 IteratorAggregate 객체를 생성합니다.

# 예제

#hostingforum.kr
php

$infiniteIterator = new InfiniteIterator(new ArrayIterator([1, 2, 3]));

foreach ($infiniteIterator as $value) {

    echo $value . "
";

}


이 예제에서는 ArrayIterator 객체를 생성하여 무한 반복을 지원하는 InfiniteIterator 객체를 생성합니다. ArrayIterator 객체는 ArrayIterator::__construct 메서드를 호출하여 ArrayIterator 객체를 생성합니다.

# InfiniteIterator::__construct 사용 예제

#hostingforum.kr
php

class MyIterator implements IteratorAggregate {

    private $count = 0;



    public function getIterator() {

        return new ArrayIterator();

    }



    public function next() {

        $this->count++;

        return $this->count;

    }

}



$myIterator = new MyIterator();

$infiniteIterator = new InfiniteIterator($myIterator);

foreach ($infiniteIterator as $value) {

    echo $value . "
";

}


이 예제에서는 MyIterator 클래스를 정의하여 IteratorAggregate 인터페이스를 구현합니다. MyIterator 클래스는 ArrayIterator 객체를 반환하는 getIterator 메서드를 정의합니다. next 메서드는 반복을 진행할 때마다 1을 증가시킵니다. InfiniteIterator 객체를 생성하여 반복을 진행하면 무한 반복이 지원됩니다.

InfiniteIterator 사용 시 주의점


InfiniteIterator를 사용할 때 주의할 점은 반복을 종료하는 메서드가 없다는 것입니다. 반복을 종료하려면 반복을 진행하는 루프를 중단해야 합니다.

# 예제

#hostingforum.kr
php

$infiniteIterator = new InfiniteIterator(new ArrayIterator([1, 2, 3]));

foreach ($infiniteIterator as $value) {

    echo $value . "
";

    if ($value == 3) {

        break;

    }

}


이 예제에서는 반복을 진행하는 루프를 중단하여 반복을 종료합니다.

결론


InfiniteIterator는 무한 반복을 지원하는 Iterator 인터페이스를 구현한 클래스입니다. InfiniteIterator::__construct 메서드는 InfiniteIterator 객체를 생성합니다. 반복을 종료하는 메서드가 없기 때문에 반복을 종료하려면 반복을 진행하는 루프를 중단해야 합니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

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

검색

게시물 검색