PHP中的循环用于执行相同的代码块指定的次数。 PHP支持以下四种循环类型。
for - 在代码块中循环指定的次数。
while - 如果且只要指定条件为真,就会循环遍历代码块。
do ... while - 循环执行一次代码块,然后在满足特殊条件的情况下重复循环。
foreach - 遍历数组中每个元素的代码块。
无涯教程将讨论用于控制循环执行的 continue 和 break 关键字。
for 循环语句
当您知道要执行一次语句或语句块的次数时,将使用for语句。

for (initialization; condition; increment){ code to be executed; }
初始化程序用于设置循环迭代次数计数器的起始值。为此可以在此声明一个变量,传统上将其命名为$i。
以下示例进行五次迭代,并在每次循环时更改两个变量的赋值-
<html>
<body>
</span><span class="pun"><?</span><span class="pln">php
$a</span><span class="pun">=</span><span class="lit">0</span><span class="pun">;</span><span class="pln">
$b</span><span class="pun">=</span><span class="lit">0</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">for</span><span class="pun">(</span><span class="pln"> $i</span><span class="pun">=</span><span class="lit">0</span><span class="pun">;</span><span class="pln"> $i</span><span class="pun"><</span><span class="lit">5</span><span class="pun">;</span><span class="pln"> $i</span><span class="pun">++</span><span class="pln"> </span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
$a </span><span class="pun">+=</span><span class="pln"> </span><span class="lit">10</span><span class="pun">;</span><span class="pln">
$b </span><span class="pun">+=</span><span class="pln"> </span><span class="lit">5</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
echo </span><span class="pun">(</span><span class="str">"At the end of the loop a=$a and b=$b"</span><span class="pln"> </span><span class="pun">);</span><span class="pln">
</span><span class="pun">?></span><span class="pln">
</body>
</html>
这将产生以下输出-
At the end of the loop a=50 and b=25
while 循环语句
只要且只要测试表达式为true,while语句就会执行一个代码块。
如果测试表达式为true,则将执行代码块。在代码执行之后,将再次判断测试表达式,并且循环将继续进行,直到发现测试表达式为假。

while (condition) { code to be executed; }
此示例在循环的每次迭代中递减一个变量值,并且当判断为假且循环结束时,计数器递增直至达到10。
<html>
<body>
</span><span class="pun"><?</span><span class="pln">php
$i</span><span class="pun">=</span><span class="lit">0</span><span class="pun">;</span><span class="pln">
$num</span><span class="pun">=</span><span class="lit">50</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">while</span><span class="pun">(</span><span class="pln"> $i </span><span class="pun"><</span><span class="pln"> </span><span class="lit">10</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
$num</span><span class="pun">--;</span><span class="pln">
$i</span><span class="pun">++;</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
echo </span><span class="pun">(</span><span class="str">"Loop stopped at i=$i and num=$num"</span><span class="pln"> </span><span class="pun">);</span><span class="pln">
</span><span class="pun">?></span><span class="pln">
</body>
</html>
这将产生以下输出-
Loop stopped at i=10 and num=40
do ... while循环语句
do ... while语句将至少执行一次代码块-只要条件为真,它将重复循环。
do { code to be executed; } while (condition);
以下示例将至少增加i的值一次,并且将继续增加变量i的值,只要其值小于10-
<html>
<body>
</span><span class="pun"><?</span><span class="pln">php
$i</span><span class="pun">=</span><span class="lit">0</span><span class="pun">;</span><span class="pln">
$num</span><span class="pun">=</span><span class="lit">0</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">do</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
$i</span><span class="pun">++;</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="kwd">while</span><span class="pun">(</span><span class="pln"> $i </span><span class="pun"><</span><span class="pln"> </span><span class="lit">10</span><span class="pln"> </span><span class="pun">);</span><span class="pln">
echo </span><span class="pun">(</span><span class="str">"Loop stopped at i=$i"</span><span class="pln"> </span><span class="pun">);</span><span class="pln">
</span><span class="pun">?></span><span class="pln">
</body>
</html>
这将产生以下输出-
Loop stopped at i=10
foreach 循环语句
foreach 语句用于遍历数组。对于每遍,当前数组元素的值将分配给$value,并且数组指针将移动一个,并且在下一遍中将处理下一个元素。
foreach (array as value) { code to be executed; }
试用以下示例列出数组的值。
<html>
<body>
</span><span class="pun"><?</span><span class="pln">php
$array</span><span class="pun">=</span><span class="pln">array</span><span class="pun">(</span><span class="pln"> </span><span class="lit">1</span><span class="pun">,</span><span class="pln"> </span><span class="lit">2</span><span class="pun">,</span><span class="pln"> </span><span class="lit">3</span><span class="pun">,</span><span class="pln"> </span><span class="lit">4</span><span class="pun">,</span><span class="pln"> </span><span class="lit">5</span><span class="pun">);</span><span class="pln">
</span><span class="kwd">foreach</span><span class="pun">(</span><span class="pln"> $array </span><span class="kwd">as</span><span class="pln"> $value </span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
echo </span><span class="str">"Value is $value <br />"</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="pun">?></span><span class="pln">
</body>
</html>
这将产生以下输出-
Value is 1 Value is 2 Value is 3 Value is 4 Value is 5
Break 语句
PHP break 关键字用于过早地终止循环的执行。
break 语句位于语句块内部,它给了您完全的控制权,只要您想退出循环,就可以退出。退出循环后,将立即执行循环语句。

在以下示例中,当计数器值达到3并终止循环时,条件测试变为true。
<html>
<body>
</span><span class="pun"><?</span><span class="pln">php
$i</span><span class="pun">=</span><span class="lit">0</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">while</span><span class="pun">(</span><span class="pln"> $i </span><span class="pun"><</span><span class="pln"> </span><span class="lit">10</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
$i</span><span class="pun">++;</span><span class="pln">
</span><span class="kwd">if</span><span class="pun">(</span><span class="pln"> $i </span><span class="pun">==</span><span class="pln"> </span><span class="lit">3</span><span class="pln"> </span><span class="pun">)</span><span class="kwd">break</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
echo </span><span class="pun">(</span><span class="str">"Loop stopped at i=$i"</span><span class="pln"> </span><span class="pun">);</span><span class="pln">
</span><span class="pun">?></span><span class="pln">
</body>
</html>
这将产生以下输出-
Loop stopped at i=3
Continue 语句
PHP continue 关键字用于暂停循环的当前迭代,但不会终止循环。
就像 break 语句一样, continue 语句位于语句块内,该语句块包含循环执行的代码,并先进行条件测试。对于遇到 continue 语句的传递,将跳过其余循环代码,并开始下一个传递。

在下面的示例循环中,打印数组的值,但对于满足条件的情况,它仅跳过代码并打印下一个值。
<html>
<body>
</span><span class="pun"><?</span><span class="pln">php
$array</span><span class="pun">=</span><span class="pln">array</span><span class="pun">(</span><span class="pln"> </span><span class="lit">1</span><span class="pun">,</span><span class="pln"> </span><span class="lit">2</span><span class="pun">,</span><span class="pln"> </span><span class="lit">3</span><span class="pun">,</span><span class="pln"> </span><span class="lit">4</span><span class="pun">,</span><span class="pln"> </span><span class="lit">5</span><span class="pun">);</span><span class="pln">
</span><span class="kwd">foreach</span><span class="pun">(</span><span class="pln"> $array </span><span class="kwd">as</span><span class="pln"> $value </span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="kwd">if</span><span class="pun">(</span><span class="pln"> $value </span><span class="pun">==</span><span class="pln"> </span><span class="lit">3</span><span class="pln"> </span><span class="pun">)</span><span class="kwd">continue</span><span class="pun">;</span><span class="pln">
echo </span><span class="str">"Value is $value <br />"</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="pun">?></span><span class="pln">
</body>
</html>
这将产生以下输出-
Value is 1 Value is 2 Value is 4 Value is 5