라이브러리

[PHP] ReflectionGenerator::isClosed - 실행이 완료되었는지 확인합니다.




ReflectionGenerator::isClosed


PHP ReflectionGenerator::isClosed 메소드는 Generator 객체가 종료되었는지 여부를 확인합니다. Generator 객체는 반복문에서 사용되는 함수로, 반복을 위해 yield 키워드를 사용하여 값을 반환합니다. 이 메소드는 Generator 객체가 종료되었는지 여부를 확인하여, Generator 객체가 종료되었을 때 반복을 멈추는 등의 작업을 수행할 수 있습니다.

예제


#hostingforum.kr
php

function fibonacci() {

    $a = 0;

    $b = 1;

    while (true) {

        yield $a;

        list($a, $b) = array($b, $a + $b);

    }

}



$generator = fibonacci();

print($generator->current() . "
"); // 0

print($generator->current() . "
"); // 1

print($generator->current() . "
"); // 1

print($generator->current() . "
"); // 2

print($generator->current() . "
"); // 3

print($generator->current() . "
"); // 5

print($generator->current() . "
"); // 8

print($generator->current() . "
"); // 13

print($generator->current() . "
"); // 21

print($generator->current() . "
"); // 34

print($generator->current() . "
"); // 55

print($generator->current() . "
"); // 89

print($generator->current() . "
"); // 144



// Generator 객체가 종료되었는지 확인

var_dump(ReflectionFunction::export('fibonacci')->getClosure()->getGenerator()->isClosed()); // bool(false)



// Generator 객체를 종료

$generator->next();



// Generator 객체가 종료되었는지 확인

var_dump(ReflectionFunction::export('fibonacci')->getClosure()->getGenerator()->isClosed()); // bool(true)



사용 방법


1. Generator 객체를 생성합니다.
2. ReflectionGenerator::isClosed 메소드를 사용하여 Generator 객체가 종료되었는지 여부를 확인합니다.
3. Generator 객체를 종료하기 위해 next() 메소드를 호출합니다.
4. ReflectionGenerator::isClosed 메소드를 사용하여 Generator 객체가 종료되었는지 여부를 다시 확인합니다.

참고


* PHP Manual: ReflectionGenerator
* PHP Manual: Generator
* PHP Manual: yield
* PHP Manual: next()
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 10,077건 / 280 페이지

검색

게시물 검색