제너레이터 - from

제너레이터에서 다른 제너레이터로 연결하는 방법에 대해서 알아보겠습니다.
이것을 제너레이터 델리게이션(Delegation : 위임)라고 합니다. from키워드를 사용합니다.

제너레이터 from 사용 방법

function 제너레이터1() {

    echo "제너레이터 1 작동 1 <br>";
    echo "제너레이터 1 작동 2 <br>";

    yield "제너레이터 1 - 1";

    echo "제너레이터 1 작동 3 <br>";
    echo "제너레이터 1 작동 4 <br>";

    yield "제너레이터 2 - 1";

    echo "제너레이터 1 작동 5 <br>";
    echo "제너레이터 1 작동 6 <br>";

    yield from 제너레이터2();
}

function 제너레이터2() {
    echo "제너레이터 2 작동 1";
    echo "제너레이터 2 작동 2";

    yield "제너레이터 2 - 1";
    return;
}

위의 제너레이터1의 마지막을 보면 from 키워드를 사용하여 제너레이터2를 호출해요.
자 그럼 제너레이터1을 호출해서 제너레이터2도 함께 호출됨을 예제로 확인해 볼게요.

<?php
    function generatorOne() {

        echo "제너레이터 1 작동 1 <br>";
        echo "제너레이터 1 작동 2 <br>";

        yield "제너레이터 1 - 1<br>";

        echo "제너레이터 1 작동 3 <br>";
        echo "제너레이터 1 작동 4 <br>";

        yield "제너레이터 2 - 1<br>";

        echo "제너레이터 1 작동 5 <br>";
        echo "제너레이터 1 작동 6 <br>";

        yield from generatorTwo();
    }

    function generatorTwo() {
        echo "<hr>제너레이터 2 작동 1<br>";
        echo "제너레이터 2 작동 2<br>";

        yield "제너레이터 2 - 1<br>";
        return;
    }

    foreach(generatorOne() as $go){
        echo $go;
    }
?>

다음은 위코드의 결과입니다.

from 키워드를 사용해 제너레이터에서 다른 제너레이터를 호출하는 방법에 대해 알아봤습니다. ^^