
MultipleIterator::valid를 사용하여 반복자를 생성할 때, 반복자가 여러 번 생성되는 현상은 의도한 것이 아닙니다.
이 문제는 MultipleIterator::valid가 반복자를 다시 초기화하는 문제로 인해 발생하는 것입니다.
valid를 호출할 때마다 반복자가 다시 초기화되기 때문에, 이전 반복자에 대한 정보가 사라지게 됩니다.
이를 해결하기 위해서는 반복자를 한 번만 초기화하고, 이후에 valid를 호출할 때마다 반복자에 대한 정보를 갱신하는 방법을 사용하면 됩니다.
예를 들어, 다음과 같이 사용할 수 있습니다.
#hostingforum.kr
php
$multipleIterator = new MultipleIterator();
$multipleIterator->attachIterator($iterator1);
$multipleIterator->attachIterator($iterator2);
while ($multipleIterator->valid()) {
$key = $multipleIterator->key();
$value = $multipleIterator->current();
// 반복자에 대한 정보를 사용할 수 있습니다.
$multipleIterator->next();
}
이 방법을 사용하면 반복자가 한 번만 초기화되고, 이후에 valid를 호출할 때마다 반복자에 대한 정보가 갱신되기 때문에, 반복자가 여러 번 생성되는 현상이 해결됩니다.
2025-08-08 07:55