>我试图让产量工作,我将以下代码从 http://php.net/manual/en/language.generators.syntax.php 复制并粘贴到一个空文件中,并得到错误解析错误:语法错误,[文件名]中意外的"$i"(T_VARIABLE(
我正在运行 XAMPP v3.2.1,它在我的其余代码(尚未使用 yield 语句(和 PHP 5.4.16 中一直完美运行。
知道我做错了什么或我应该做什么吗?
<?php
function gen_one_to_three() {
for ($i = 1; $i <= 3; $i++) {
// Note that $i is preserved between yields.
yield $i;
}
}
$generator = gen_one_to_three();
foreach ($generator as $value) {
echo "$value'n";
}
?>
如果将 yield 替换为 echo,则代码没有错误
yield
仅在 PHP 版本> 5.5
上可用。
如果您尝试在以前的版本上使用它,则会收到T_VARIABLE
解析错误。
请参阅 3v4l 演示。
必须用括号将yield语句括起来
function gen_one_to_three() {
for ($i = 1; $i <= 3; $i++) {
// Note that $i is preserved between yields.
yield ($i);
}
}
$generator = gen_one_to_three();
foreach ($generator as $value) {
echo "$value'n";
}