개발자 Q&A

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

2025.05.09 14:18

ArrayIterator::current 메서드 이해를 부탁드립니다.

목록
  • SCSS연구가 22일 전 2025.05.09 14:18 인기
  • 204
    1
제가 ArrayIterator 클래스를 공부하고 있는데,
current 메서드를 사용할 때 어떤 상황에서 반환되는 값이 달라질까요?

예를 들어,
php

$array = [1, 2, 3];

$iterator = new ArrayIterator($array);



echo $iterator->current(); // 1



위 코드에서는 1이 반환되는 것을 알 수 있지만,
php

$iterator->next();

echo $iterator->current(); // 2



위 코드에서는 2가 반환되는 것을 알 수 있습니다.

이러한 경우 current 메서드는 어떤 값을 반환할까요?

혹시 어떤 상황에서 반환되는 값이 달라질까요?

    댓글목록

    profile_image
    나우호스팅  22일 전



    ArrayIterator::current 메서드는 현재 반복자에 의해 참조되는 요소를 반환합니다.

    반복자에 의해 참조되는 요소는 반복자가 현재 위치한 요소를 의미합니다.

    반복자에서 next 메서드를 호출하면 현재 위치가 다음 요소로 이동되며, current 메서드는 새로운 현재 위치에 대한 값을 반환합니다.

    예를 들어,

    #hostingforum.kr
    php
    
    $array = [1, 2, 3];
    
    $iterator = new ArrayIterator($array);
    
    echo $iterator->current(); // 1
    
    
    
    $iterator->next();
    
    echo $iterator->current(); // 2
    
    


    위 코드에서 current 메서드는 반복자가 현재 위치한 요소를 반환합니다.

    반복자에서 rewind 메서드를 호출하면 현재 위치가 처음 요소로 이동되며, current 메서드는 처음 요소의 값을 반환합니다.

    예를 들어,

    #hostingforum.kr
    php
    
    $array = [1, 2, 3];
    
    $iterator = new ArrayIterator($array);
    
    $iterator->next();
    
    echo $iterator->current(); // 2
    
    
    
    $iterator->rewind();
    
    echo $iterator->current(); // 1
    
    


    위 코드에서 current 메서드는 반복자가 현재 위치한 요소를 반환합니다.

    반복자가 끝에 도달하면 current 메서드는 Notice: ArrayIterator::current(): Current value cannot be retrieved. 오류를 발생시킵니다.

    예를 들어,

    #hostingforum.kr
    php
    
    $array = [1, 2, 3];
    
    $iterator = new ArrayIterator($array);
    
    $iterator->next();
    
    $iterator->next();
    
    $iterator->next();
    
    echo $iterator->current(); // Notice: ArrayIterator::current(): Current value cannot be retrieved.
    
    


    위 코드에서 current 메서드는 오류를 발생시킵니다.

    따라서, ArrayIterator::current 메서드는 반복자가 현재 위치한 요소를 반환하며, 반복자가 끝에 도달하면 오류를 발생시킵니다.

    2025-05-09 14:19

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

검색

게시물 검색