在編寫程式的時候經常會用到重複的作業,如果這些重覆的作業本身是有固定次數的特性,那麼在程式中使用for迴圈指令是最恰當不過了。在PHP中,for迴圈指令基本上和C語言的方法是一樣的。
以下是for迴圈指令的標準語法:
for (設定索引變數初始值; 索引變數的繼續執行條件; 對於索引變數的改變) {
要被重複的指令區塊;
}
為了能夠指定重複指令區塊執行的次數,在for迴圈指令的第一列要先設定一個變數用來作為索引變數,而在2個分號所區隔的3個欄位中,一開始要先設定索引變數的初值,之後要說明如果想要持續執行迴圈內容的話,此索引變數要滿足的條件為何,最後一個欄位則是讓我們有機會可以去改變索引變數的內容,使得索引變數可以不斷地隨著執行的次數而改變,以確保迴圈執行次數的正確性。
以下是一個簡單的例子:
<?php
for ($i=0; $i<5; $i++) {
echo "Hello world!<br/>";
}
?>
上述程式可以很容易地看出它的輸出結果就是5列"Hello world!<br/>"字串,而索引變數在這裡的目的也就是用來當作是計數器而已。再來看以下的例子:
<?php
for ($i=1; $i<=6; $i++) {
echo "<h$i>Hello world!</h$i>";
}
?>
在上面的例子中,不只把$i這個變數當作是索引變數,而且還在迴圈指令中應用到它的值,使其值套用到HTML的標題標籤中,讓輸出的Hello world!字串可以由大到小呈現在瀏覽器上。執行之後的網頁原始碼如下所示:
<h1>Hello world!</h1>
<h2>Hello world!</h2>
<h3>Hello world!</h3>
<h4>Hello world!</h4>
<h5>Hello world!</h5>
<h6>Hello world!</h6>
輸出格式說明
請留意,在實際輸出時並無換列,以下排版只是為了方便同學們的閱讀和理解
再來看一個例子:
<?php
echo "<table border=1 bgcolor=aliceblue>";
echo "<tr><td>x</td><td align=center>x!</td></tr>";
for ($x=1; $x<=10; $x++) {
$factorial = 1;
for ($j=1; $j<=$x; $j++) {
$factorial *= $j;
}
echo "<tr><td>$x</td><td align=right>$factorial</td></tr>";
}
echo "</table>";
?>
這是一個計算並呈現階乘函數(factorial)值的例子,其輸出的結果如下:

在這個程式中除了使用迴圈之外 ,我們也利用迴圈指令的特性,使其產生HTML表格所需要的語法,這也是在PHP網頁設計中非常常見的技巧。其產生之原始碼如下所示:
<table border=1 bgcolor=aliceblue>
<tr><td>x</td><td align=center>x!</td></tr>
<tr><td>1</td><td align=right>1</td></tr>
<tr><td>2</td><td align=right>2</td></tr>
<tr><td>3</td><td align=right>6</td></tr>
<tr><td>4</td><td align=right>24</td></tr>
<tr><td>5</td><td align=right>120</td></tr>
<tr><td>6</td><td align=right>720</td></tr>
<tr><td>7</td><td align=right>5040</td></tr>
<tr><td>8</td><td align=right>40320</td></tr>
<tr><td>9</td><td align=right>362880</td></tr>
<tr><td>10</td><td align=right>3628800</td></tr>
</table>
輸出格式說明
請留意,在實際輸出時並無換列,以下排版只是為了方便同學們的閱讀和理解