
CachingIterator::key() 메서드는 Iterator의 현재 포인터가 가리키는 키를 반환합니다. 캐싱이 된 경우에도 동일하게 캐시된 키를 반환합니다.
캐싱이 된 경우 Iterator의 포인터는 캐시된 키를 가리키지 않습니다. 캐싱이 된 경우 Iterator의 포인터는 원본 데이터의 키를 가리키며, 캐시된 키는 캐싱된 데이터에 저장됩니다.
예시 코드를 통해 이해를 도와드리겠습니다.
#hostingforum.kr
php
$iterator = new ArrayIterator(['apple', 'banana', 'cherry']);
$cachingIterator = new CachingIterator($iterator);
// 캐싱이 되지 않은 경우
echo $cachingIterator->key() . "n"; // apple
echo $cachingIterator->current() . "n"; // apple
// 캐싱이 된 경우
$cachingIterator->rewind();
echo $cachingIterator->key() . "n"; // apple
echo $cachingIterator->current() . "n"; // apple
echo $cachingIterator->getCacheKey() . "n"; // apple
위 예시 코드에서, 캐싱이 된 경우 Iterator의 포인터는 원본 데이터의 키를 가리키며, 캐시된 키는 캐싱된 데이터에 저장됩니다.
2025-05-23 14:55