
Generator::next 메소드를 호출할 때 반드시 yield를 사용한 값이 반환되는 것은 아닙니다. yield를 사용한 값이 반환되지 않으면 Generator::next 메소드는 StopIteration 예외를 발생시킵니다.
#hostingforum.kr
php
function generator() {
yield 1;
yield 2;
yield 3;
}
$gen = generator();
print_r($gen->current()); // 1
$gen->next(); // yield 2를 반환
print_r($gen->current()); // 2
$gen->next(); // yield 3을 반환
print_r($gen->current()); // 3
$gen->next(); // StopIteration 예외 발생
try {
$gen->next();
} catch (Exception $e) {
echo "StopIteration 예외 발생";
}
위 예제에서 generator 함수는 1, 2, 3을 yield로 반환합니다. Generator::next 메소드를 호출할 때 yield를 사용한 값이 반환되지 않으면 StopIteration 예외가 발생합니다.
2025-08-08 11:50