這樣的迴圈可以用來處理一個事物的較長的列表(例如儲存在資料庫中的笑話),下面我們舉了一個簡單的例子:計數到10。
$count = 1; while ($count <= 10) { echo( "$count " ); $count++; } |
我知道這段語句可能看上去挺恐怖,但是我們可以一行行地來看它。第一行定義了一個 叫$count的變數並將其賦值為1。第二行是while迴圈的開始,條 件是$count小於或等於(<=)10。第三行和第四行是while迴圈的迴圈體,當條件為真時,我們將重複執行它。第三行簡單地輸出了 一$count的值,並在其後加了一個空格。第四行將$count的值加一($count++是$count = $count + 1的縮寫--兩者的意義是完全一樣的)。
現在我們可以看看這段程式是如何執行的了。當第一次檢查條件時,$count的值是1,所以條 件為真。$count的值(1)被輸出,接著$count被賦予了一個新值2。當第二次檢查條件時條件仍為真,所以2 被輸出,並賦了一個新值3 。這個過程被繼續下去,輸出了3 ,4 ,5 ,6 ,7 ,8 ,9 直到10 。最後,$count被賦予值11,條件為假,迴圈結束。最終的結果是輸出了這樣一個字串“1 2 3 4 5 6 7 8 9 10”。
在這個例子的條件中我們使用了一個新的運算子:<= (小於或等於)。其他用於數值比較的運算子還有>=(大於或等於),<(小於),>(大於)和!=(不等於)。最後一個也可以使用於字串比較中。
多用途的頁面
如果你想在你建立的網站的每一個網頁的頂端都顯示訪問者的姓名。使用我們前面的自動顯示歡迎資訊的例子,我們已經基本上成功了一半。現在我們只要對我們樣本解決這幾個問題就行了:
我們需要在網站的每一個頁面都顯示,而不是僅僅在一個頁面上。
我們無法控制在我們的網站上那一個頁面會首先顯示。
第一個問題的解決不是太困難的。當我們在一個頁面上獲得了使用者名稱這個變數後,我們可以在任何請求中通過將其添加到一個查詢字串來傳遞這個變數:
請注意我們在HTML標識符的中間嵌入了PHP的代碼。實際上這是非常常用的。我們已經對 echo這個函數很熟悉,但是我們還不熟悉urlencode函 數。這個函數的功能是將字串中一些特殊的字元(例如空格)轉換成特定的編碼,以使它們能夠在查詢字串中顯示。例如,如果$name變數的值 是"Kevin Yank",其中的空格在查詢字串中不允許存在,urlencode的輸出將是Kevin+Yank,在newpage.php中建立$name時,值 將會被自動轉換回來。
Ok,現在已經可以將使用者名稱傳遞給我們網站的第一個串連了。現在我們所需要的就是在其第一次出現時,要能獲得它的值。在我們上面的例子中,我們已經做了一個HTML頁面用來處理獲得使用者名稱的表單。而問題是我們不能強迫使用者在每一次訪問我們的網站時都從這個頁面開始。