
	                	                 
NoRewindIterator::key() 메소드는 IteratorInterface의 메소드 중 하나로, 현재 포인터가 가리키는 키를 반환합니다. 
이 메소드는 IteratorInterface의 다른 메소드인 rewind() 메소드와 함께 사용됩니다. rewind() 메소드는 포인터를 처음으로 이동시킵니다. 
NoRewindIterator의 경우, 포인터가 한 번만 사용되기 때문에, 이 메소드의 역할은 다음과 같습니다.
- 포인터가 처음으로 이동된 경우, key() 메소드는 null을 반환합니다.
- 포인터가 이미 다른 위치에 있는 경우, key() 메소드는 현재 포인터가 가리키는 키를 반환합니다.
이 메소드는 IteratorInterface의 다른 메소드인 current() 메소드와 함께 사용됩니다. current() 메소드는 현재 포인터가 가리키는 값을 반환합니다.
예를 들어, 다음과 같은 IteratorInterface를 구현한 클래스가 있습니다.
#hostingforum.kr
php
class MyIterator implements IteratorInterface {
    private $data = [1, 2, 3, 4, 5];
    public function rewind() {
        $this->pointer = 0;
    }
    public function current() {
        return $this->data[$this->pointer];
    }
    public function key() {
        if ($this->pointer === 0) {
            return null;
        } else {
            return $this->pointer - 1;
        }
    }
    public function next() {
        $this->pointer++;
    }
    public function valid() {
        return $this->pointer < count($this->data);
    }
}
이 클래스의 key() 메소드는 포인터가 처음으로 이동된 경우 null을 반환하고, 포인터가 이미 다른 위치에 있는 경우 현재 포인터가 가리키는 키를 반환합니다.
2025-03-09 17:50