奇怪的PHP Yield错误

时间:2013-10-12 08:27:20

标签: php xampp yield

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

如果用echo

替换yield,则代码没有错误

2 个答案:

答案 0 :(得分:6)

yield仅适用于PHP版本&gt; 5.5

如果您尝试在以前的版本中使用它,则会出现T_VARIABLE解析错误。

请参阅3v4l demo

答案 1 :(得分:-2)

你必须用括号括起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";
}