개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.06.16 18:35

MultipleIterator::rewind에 대한 질문

목록
  • UX개발자 1일 전 2025.06.16 18:35
  • 7
    1
저는 PHP의 MultipleIterator를 사용하여 다중 반복자를 구현하고 있습니다. 하지만, rewind() 메소드를 사용하여 반복자를 다시 처음부터 시작하려고 합니다. 하지만 rewind() 메소드가 실제로 반복자를 다시 처음부터 시작하는지 궁금합니다.

예를 들어, 다음 코드는 어떻게 작동할까요?

php

$multiIterator = new MultipleIterator();

$multiIterator->attachIterator(new ArrayIterator([1, 2, 3]));

$multiIterator->attachIterator(new ArrayIterator(['a', 'b', 'c']));



$multiIterator->rewind();



foreach ($multiIterator as $value) {

    print_r($value);

}



위 코드에서 rewind() 메소드를 사용한 후 foreach 루프를 돌렸을 때, 반복자가 다시 처음부터 시작하는지 궁금합니다.

    댓글목록

    profile_image
    나우호스팅  1일 전



    PHP의 MultipleIterator는 여러 반복자를 하나로 합쳐서 사용할 수 있도록 도와주는 클래스입니다. rewind() 메소드는 반복자를 처음부터 다시 시작하도록 합니다.

    위 코드에서 rewind() 메소드를 사용한 후 foreach 루프를 돌리면, 반복자가 다시 처음부터 시작합니다. 하지만, rewind() 메소드는 각 반복자에 대해 호출됩니다.

    따라서, 위 코드에서 ArrayIterator [1, 2, 3]과 ArrayIterator ['a', 'b', 'c']는 각각 처음부터 다시 시작합니다.

    foreach 루프를 돌리면, 다음과 같은 결과가 나옵니다.

    ArrayIterator [1, 2, 3]의 경우: 1, 2, 3
    ArrayIterator ['a', 'b', 'c']의 경우: 'a', 'b', 'c'

    따라서, rewind() 메소드를 사용한 후 foreach 루프를 돌리면, 반복자가 다시 처음부터 시작합니다.

    2025-06-16 18:36

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 28,658건 / 11 페이지

검색

게시물 검색