C# 从循环返回,但循环的执行没有效果?

C# 从循环返回,但循环的执行没有效果?,c#,php,loops,iterator,recursive-query,C#,Php,Loops,Iterator,Recursive Query,在php中,当从循环返回一些值并且循环的执行仍然从下一个索引继续时(如C#中的GetEnumerator()和use MoveNext()),可以使用 问题- $arr=[0,1,5,9,5]; $i=count($arr); while($i>0){ // data base operations $_GLOBALS['i']=$_GLOBALS['i']-1; //return some value; } 我是一名c#程序员,不熟悉php,因此非常感谢您的帮助

在php中,当从循环返回一些值并且循环的执行仍然从下一个索引继续时(如C#中的GetEnumerator()和use MoveNext()),可以使用

问题-

$arr=[0,1,5,9,5];
$i=count($arr);
while($i>0){
    // data base operations
    $_GLOBALS['i']=$_GLOBALS['i']-1;
    //return some value;
}

我是一名c#程序员,不熟悉php,因此非常感谢您的帮助或想法。

返回,因为控制结构
返回可以在函数(过程)或方法(面向对象)中使用,以返回值,但这是可选的。如果您有一个循环
while
for
foreach
等,并且您在中使用了
return
,那么这将向调用模块返回值并停止循环


但是有一些方法可以执行循环并将其返回给静态对象或全局变量。

返回作为控制结构
返回可以在函数(过程)或方法(面向对象)中使用,以返回值,但这是可选的。如果您有一个循环
while
for
foreach
等,并且您在中使用了
return
,那么这将向调用模块返回值并停止循环


但是有一些方法可以完成循环并将其返回给静态对象或全局变量。

实际上您可以。您要查找的是C#中的关键字。根据,相同的关键字可以在php中用于实现生成器

文档页面上有一个小示例:


事实上你可以。您要查找的是C#中的关键字。根据,相同的关键字可以在php中用于实现生成器

文档页面上有一个小示例:


短awser是No。请给出代码C#或最终结果短awser是No。请给出代码C#或最终结果
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";
}
1
2
3