奇怪的PHP Yield错误

Der*_*ent 0 php xampp yield

我试图让yield得到工作,我将以下代码从http://php.net/manual/en/language.generators.syntax.php复制并粘贴到一个空文件中并得到错误Parse错误:语法错误,意外[FILENAME]中的'$ 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";
}
?>
Run Code Online (Sandbox Code Playgroud)

如果用echo替换yield,则代码没有错误

Ama*_*ali 6

yield仅适用于PHP版本> 5.5.

如果您尝试在以前的版本上使用它,您将得到一个T_VARIABLE解析错误.

请参阅3v4l演示.