
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