【问题标题】:why there is no output after running while loop in php?为什么在php中运行while循环后没有输出?
【发布时间】:2021-06-01 20:18:06
【问题描述】:

当我运行下面给出的代码时,它不会在浏览器中输出任何内容。 我究竟做错了什么?请帮忙。

  $ages = [0, 4, 8, 12, 16, 20];

  while($age = current($ages)){
        echo $age.",";
        next($ages);
  }

【问题讨论】:

  • 提示:current($ages) 在第一次迭代中返回什么?

标签: php arrays next


【解决方案1】:

为了解决您当前的问题,当您在循环的第一次迭代中使用 current($ages) 时,这将返回列表中的第一项 - 即 0。因为 while 循环仅在值不为 false 时继续(其中 0 也算)循环将不会运行,所以...

while(($age = current($ages)) !== false){
    echo $age.",";
    next($ages);
}

或者,使用foreach 循环...

foreach ( $ages as $age)    {
    echo $age.",";
}

【讨论】:

    【解决方案2】:

    第一个测试是while (0),因为第一个值是0。所以,循环永远不会执行。

    您可以改用foreach() 循环

    $ages = [0, 4, 8, 12, 16, 20];
    foreach ($ages as $age) {
        echo $age . ',';
    }
    

    或者只是implode() 以获得更好的结果(因为它不会有尾随,)。

    echo implode(',', $ages);
    

    【讨论】:

    • 优秀快捷的解决方案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-07
    • 2021-05-17
    • 2013-08-04
    • 1970-01-01
    • 1970-01-01
    • 2012-01-02
    • 2012-05-01
    相关资源
    最近更新 更多