Generator::send

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

Generator::send — 생성기에 값 보내기


설명

public Generator::send(mixed $value): mixed

현재 yield 표현식의 결과로 주어진 값을 제너레이터에 보내고 제너레이터의 실행을 재개합니다.

이 메서드가 호출될 때 생성기가 yield 표현식에 없으면 값을 보내기 전에 먼저 첫 번째 yield 표현식으로 진행합니다. 따라서 Generator::next() 호출로 PHP 생성기를 "prime"할 필요가 없습니다(파이썬에서 수행되는 것처럼).


매개변수

value
생성기로 보낼 값입니다. 이 값은 생성기가 현재 있는 yield 표현식의 반환 값이 됩니다.

반환 값

산출된 값을 반환합니다.


Examples

예제 #1 Generator::send()를 사용하여 값 주입

                  
<?php
function printer() {
    echo "I'm printer!".PHP_EOL;
    while (true) {
        $string = yield;
        echo $string.PHP_EOL;
    }
}

$printer = printer();
$printer->send('Hello world!');
$printer->send('Bye world!');
?>
                  
                

위의 예는 다음을 출력합니다.

I'm printer!
Hello world!
Bye world!