jm at guide42 dot com 的注释不准确。Generator::getReturn() 不会检查 return 语句是否存在,而是检查函数是否已返回(完成执行)。
<?php
function f(){
yield;
}
f()->getReturn(); // 异常:无法获取尚未返回的生成器的返回值
$f = f();
$f->next(); // NULL
$f->getReturn(); // NULL,因为没有 return 语句意味着为空的 `return;`,空返回值解析为 null。