php 静态变量如何循环输出?

<?php
    function test()
    {
        static $nm = 1;
        $nm =$nm+1 ;
        echo $nm."<br />";
    }
    
    // 第一次执行,$nm = 2
    test();
    // 第一次执行,$nm = 4
    test();
    // 第一次执行,$nm = 8
    test();
?>

如何能调用方法 循环生成 2 4 6 2 4 6;

阅读 3.4k
3 个回答
<?php
function test()
{
    $config = [2, 4, 6];
    
    static $i = 0;
    
    $result = $config[$i];
    
    if ($i >= count($config) - 1) {
        $i = 0;
    } else {
        $i++;
    }
    
    echo $result . '<br />';
}


test();
test();
test();
test();
test();
test();

更优雅的实现:

function test()
{
  static $value = [2, 4, 6];
  $tmp = array_shift($value);
  echo $tmp . "\n";
  array_push($value, $tmp);
  test();
}

test();
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题