
CachingIterator의 __toString 메소드는 항상 null을 반환하는 이유는, IteratorInterface의 __toString 메소드는 Iterator의 현재 위치에 대한 정보를 반환하도록 정의되어 있기 때문입니다. CachingIterator는 데이터를 캐싱하여 Iterator의 현재 위치에 대한 정보를 유지하지 않기 때문에 null을 반환합니다.
이 문제를 해결하기 위해서는 CachingIterator의 __toString 메소드를 오버라이딩하여 원하는 문자열을 반환하도록 구현할 수 있습니다. 예를 들어, 다음과 같이 구현할 수 있습니다.
#hostingforum.kr
php
class MyCachingIterator extends CachingIterator
{
public function __toString()
{
$data = $this->getCache();
if ($data) {
return implode(', ', $data);
} else {
return 'No data';
}
}
}
이 예제에서, MyCachingIterator 클래스는 CachingIterator 클래스를 상속하고 __toString 메소드를 오버라이딩합니다. __toString 메소드는 캐시된 데이터를 가져와서 문자열로 변환합니다. 만약 캐시된 데이터가 없으면 'No data'를 반환합니다.
이러한 방법으로, CachingIterator의 __toString 메소드를 오버라이딩하여 원하는 문자열을 반환할 수 있습니다.
2025-04-26 04:50