在线文档教程
PHP
类和函数 | Classes and Functions

Generator::send

Generator::send

(PHP 5 >= 5.5.0, PHP 7)

Generator :: send - 将值发送到生成器

描述

public mixed Generator::send ( mixed $value )

作为当前良率表达式的结果,将给定值发送给生成器,并恢复生成器的执行。

如果在调用此方法时生成不处于yield表达式,那么在发送该值之前,将首先让它前进到第一个yield表达式。因此,没有必要使用Generator :: next()调用来“启动”PHP生成(就像在Python中完成的那样)。

参数

value

值发送到生成器。该值将是生成器当前所处的yield表达式的返回值。

返回值

返回已产生的值。

例子

Example#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!

← Generator::rewind

Generator::throw →