PHP yield 没有 for?
PHP yield without for?
我一直在查看 PHP 中 yield
的 some examples,试图了解人们会在哪些情况下使用它,我开始注意到所有我查看的示例中有 yield
在 for(...) {}
或 foreach(...) {}
语句中。
有没有办法在 for
之外使用 yield
?
不需要循环。这有效:
function foo() {
yield 1;
yield 2;
yield 3;
}
使用它的一个原因是将其用作与 Javascript 中的 'await' 类似的功能。
例如,可以构建一个为此目的使用 yield 的异步框架:
function foo() {
$response = yield asyncHttpRequest('GET', 'http://blabla');
}
这个具体示例是虚构的,但它是可能的(并且已经完成)。
我做了这样一个异步库。此处的文档:https://sabre.io/event/coroutines/
虽然那里有更好的 maintained/more 流行图书馆。
我一直在查看 PHP 中 yield
的 some examples,试图了解人们会在哪些情况下使用它,我开始注意到所有我查看的示例中有 yield
在 for(...) {}
或 foreach(...) {}
语句中。
有没有办法在 for
之外使用 yield
?
不需要循环。这有效:
function foo() {
yield 1;
yield 2;
yield 3;
}
使用它的一个原因是将其用作与 Javascript 中的 'await' 类似的功能。
例如,可以构建一个为此目的使用 yield 的异步框架:
function foo() {
$response = yield asyncHttpRequest('GET', 'http://blabla');
}
这个具体示例是虚构的,但它是可能的(并且已经完成)。
我做了这样一个异步库。此处的文档:https://sabre.io/event/coroutines/
虽然那里有更好的 maintained/more 流行图书馆。