제너레이터에서 다른 제너레이터로 연결하는 방법에 대해서 알아보겠습니다.
이것을 제너레이터 델리게이션(Delegation : 위임)라고 합니다.
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 키워드를 사용해 제너레이터에서 다른 제너레이터를 호출하는 방법에 대해 알아봤습니다. ^^
봐주셔서 감사합니다. 문의 또는 잘못된 설명은 아래의 댓글에 부탁드립니다.
당신의 작은 누름이 저에게는 큰 희망이 됩니다.
댓글 0개
정렬기준