代码之家  ›  专栏  ›  技术社区  ›  HARENDRA SINGH

从循环返回,但循环的执行不起作用?

  •  1
  • HARENDRA SINGH  · 技术社区  · 8 年前

    在php中,当从循环返回一些值并且循环的执行仍然从下一个索引继续时(如C#中的GetEnumerator()和使用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,如果有任何帮助或想法,我将不胜感激?

    2 回复  |  直到 8 年前
        1
  •  1
  •   Markus Safar    8 年前

    实际上你可以。你要找的是 yield php documentation ,可以在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";
    }
    

    上述示例将输出:

    1
    2
    3
    
        2
  •  -1
  •   Webdesigner    8 年前

    return 可以在函数(过程)或方法(面向对象)中使用以返回值,但这是可选的。如果你有一个循环 while , for foreach 等等,您使用 回来