【问题标题】:How does for loop works actually in php?for 循环如何在 php 中实际工作?
【发布时间】:2016-06-24 00:53:45
【问题描述】:

我是 php 的新手,我已经了解 php 中的所有其他循环,但问题是 我无法理解 for 循环的工作原理 例如: 这是代码;

$a = 0;
$b = 0;

for ($i=0; $i < 5; $i++) { 
    $a += 10;
    $b += 5;
}
echo("At the end of the loop a=$a and b=$b");

当我执行这个脚本时,a = 50 和 b = 25 的值!

是否将 a 值与 i 的增量值相乘?比如 10 * 5 = 50。

【问题讨论】:

  • 不,$a 加 10,5 次。
  • += 不是增量,每次循环迭代将 $a 加 10,$b 加 5,+= 取当前值并添加这么多 ++ 是增量。那么什么是 10+10+10+10+10, 50. 正是人们所期望的。
  • "我已经了解 php 中的所有其他循环" - 然后考虑 for-loop 语法糖并将您的脚本与 3v4l.org/MjXK7

标签: php loops for-loop


【解决方案1】:

你从$i=0开始,然后你做$a+10$b+5,只要$i &lt;5

$i=0, $a=10, $b=5

$i=1, $a=20, $b=10

$i=2, $a=30, $b=15

$i=3, $a=40, $b=20

$i=4, $a=50, $b=25

$i=5,现在循环停止,因为$i is no longer &lt;5

【讨论】:

    【解决方案2】:

    您的循环运行了五次。每次通过循环,您将 10 加到 $a 的值上。这样做五次给你 50。

    【讨论】:

      【解决方案3】:

      这就是它的工作方式。

      假设您没有美元。我告诉你,每次你做 5 件家务,我都会给你一美元。但是,我只给你5美元。起初你没有美元,做完一件家务后我给你 5 美元。现在你有 5 美元。你再做一件家务,我再给你 5 个,把你带到 10 个。我现在给了你两美元。我再给你5个——你有15个。我给你另一个——20个——还有一个;带你到 25 美元。现在我已经给了你我的美元限额,我们的循环就完成了。

      在这个故事中,我的钱就是你的$i 价值。从 0 开始,一直到 5。您的家务就是您的 $b 值,每次都会添加。

      代码示例:

      for ($dollars=0; $dollars < 5; $dollars++) { 
          $chores += 5;
      }
      

      【讨论】:

      • 所以你欠我什么...... 80 美元。 :)
      【解决方案4】:

      += 不是递增它的赋值运算符。

      http://php.net/manual/en/language.operators.assignment.php

      正如我在 cmets 和其他人的回答中提到的那样。 += 会将右侧的值添加到左侧的值。所以在一个循环中是这样的

      • 步骤 0 $a = 5 (0+5)

      • 步骤 1 $a = 10 (5[上一次迭代退出值]+5 )

      • 步骤 2 $a = 15 (10[上一次迭代退出值] + 5)

      等等....

      值得注意的是,您还可以执行 -= *= 等和 .= 或追加所有相同类型的操作。

      【讨论】:

        【解决方案5】:

        当您知道要执行一个语句或语句块的次数时,使用 for 语句。

        语法:

        for (initialization; condition; increment){
           code to be executed;
        }
        

        initializer用于设置循环迭代次数计数器的起始值。为此可以在此处声明一个变量,传统上将其命名为$i

        示例

        以下示例进行五次迭代,并在每次循环中更改两个变量的赋值 -

        <html>
           <body>
        
              <?php
                 $a = 0;
                 $b = 0;
        
                 for( $i = 0; $i<5; $i++ ) {
                    $a += 10;
                    $b += 5;
                 }
        
                 echo ("At the end of the loop a = $a and b = $b" );
              ?>
        
           </body>
        </html>
        

        这将产生以下结果 -

        At the end of the loop a = 50 and b = 25

        【讨论】:

          【解决方案6】:

          For loop 是进入条件循环。它首先评估条件,因此与循环关联的语句块即使条件不满足也不会运行一次

          这个for循环块里面的语句会运行5次,$i的值是0到4; 想象一下这些循环是分开运行的。

           $a=0;
           $b=0;
           for ($i = 0; $i < 5; $i++){
                 echo $a += 10;
                 echo '<br>';
           }
          

          还有这样的输出

          10
          20
          30
          40
          50
          

          现在是另一个循环

          for ($i=0; $i < 5; $i++) { 
                echo  $b += 5;
                echo '<br>';
          
           }
          

          输出是这样的

          5
          10
          15
          20
          25
          

          在每次迭代中,它使用assignment operator x += y105 添加到先前的迭代次数。

          【讨论】:

            猜你喜欢
            • 2019-06-20
            • 2018-08-07
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多