라이브러리

[PHP] Generator::valid - 반복자가 닫혔는지 확인




PHP Generator::valid

PHP Generator는 함수 내에서 반복 가능한 데이터를 생성하는 데 사용되는 기능입니다. Generator는 함수 내에서 데이터를 생성하고, 반복자 객체를 반환합니다. 반복자 객체는 데이터를 한 번에 한 개씩 반환하고, 데이터가 모두 반환되면 종료됩니다.

Generator::valid 메서드는 Generator 객체가 현재 데이터가 있는지 여부를 확인하는 데 사용됩니다. 이 메서드는 boolean 값을 반환합니다. true이면 현재 데이터가 있음을 의미하고, false이면 데이터가 없음을 의미합니다.

예제

#hostingforum.kr
php

function fibonacci() {

    $a = 0;

    $b = 1;

    while (true) {

        yield $a;

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

    }

}



$generator = fibonacci();



// Generator::valid 메서드 사용

echo var_dump($generator->valid()) . "
"; // bool(true)



// 데이터를 한 번에 한 개씩 반환

for ($i = 0; $i < 10; $i++) {

    echo $generator->current() . "
";

    $generator->next();

    echo var_dump($generator->valid()) . "
";

}



이 예제에서는 Generator를 사용하여 피보나치 수열을 생성합니다. Generator::valid 메서드는 현재 데이터가 있는지 여부를 확인합니다. 반복자 객체를 사용하여 데이터를 한 번에 한 개씩 반환합니다.

Generator::valid 메서드의 사용

Generator::valid 메서드는 다음과 같은 상황에서 사용됩니다.

* 데이터가 모두 반환된 후에 메서드를 호출하면 false을 반환합니다.
* 데이터가 아직 반환되지 않은 경우 true을 반환합니다.
* Generator가 종료된 경우 false을 반환합니다.

Generator::valid 메서드의 예시

#hostingforum.kr
php

function numbers() {

    for ($i = 0; $i < 10; $i++) {

        yield $i;

    }

}



$generator = numbers();



echo var_dump($generator->valid()) . "
"; // bool(true)



for ($i = 0; $i < 10; $i++) {

    echo $generator->current() . "
";

    $generator->next();

    echo var_dump($generator->valid()) . "
";

}



echo var_dump($generator->valid()) . "
"; // bool(false)



이 예제에서는 Generator를 사용하여 0부터 9까지의 숫자를 생성합니다. Generator::valid 메서드는 현재 데이터가 있는지 여부를 확인합니다. 반복자 객체를 사용하여 데이터를 한 번에 한 개씩 반환합니다. 데이터가 모두 반환된 후에 메서드를 호출하면 false을 반환합니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

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

검색

게시물 검색