PHP和MySQL入門(5)

來源:互聯網
上載者:User
控制語句

在我們之前看到的PHP的代碼的例子中,要麼是只有一個單獨的向Web頁面輸出文本語句;要麼是一系列的依次執行的語句。如果你用其他語言編寫過程式,你應該知道,實際上很少有這麼簡單的程式。
和任何其他的程式設計語言一樣,PHP也提供了很方便地處理指令碼中的“控制流程”的方法。就是說,PHP中包含了一些特殊的語句,通過這些語句你可是不受依次執行的順序的束縛。這種語句被稱之為“控制語句”。不理解?不要擔心!有一些例子會很好地協助你。

最基本最常用到的控制語句是if-else語句。它的結構是這樣的:

if ( ) {
//如果是真,將執行的語句。
} else {
//(可選)如果是假,將執行的語句。
}

這個控制語可以讓我們告訴PHP根據一些條件的真假來決定相應地執行哪一組語句。如果你不覺得我這麼做有點空虛,我們可以將我們剛才建立的welcome.php檔案修改為:

if ( $name == "Kevin" ) {
echo( "Welcome, oh glorious leader!" );
} else {
echo( "Welcome, $name!" );
}

現在,如果傳遞給這個頁面的name變數的值是Kevin,將顯示一個特殊的資訊。否則,將顯示一個包含輸入的name的普通的資訊。

需要指出的是,在這個結構中,“else子句”(它指出了if-else結構中條件為假時執行的內容)是可選的。對於上面的例子,如果我們的目的是當適當的名字被輸入時,顯示特殊的資訊,否則就什麼也不顯示。這段代碼應該是這樣的:

if ( $name == "Kevin" ) {
echo( "Welcome, oh glorious leader!" );
}

在上麵條件中所使用的==是用比較兩個值是否相等的運算子。要特別記住的是在這兒你需要輸入兩 個等號。如果你輸入的是一個等號,你實際上使用的是前面我們 討論過的賦值運算子,你將不再是對兩個變數的值進行比較,而是給變數賦了一個新值(這個操作會附帶地返回一個true)。這樣做的結果不僅僅是導致這個條 件永遠是true,它還可能改變我們所要檢查的變數的值,這可能會導致很多問題。

防止發生這種錯誤有一種安全的做法,那就是象下面這樣顛倒用來比較的變數和常量的位置:

if ( "Kevin" == $name ) {

這樣做的效果是完全相同的,但是當你忘了第二個等號時,我們來看看會發生什麼情況。PHP會試圖將變數($name)的值插入常量("Kevin")中。因為你不能改變常量的值,PHP會中斷並提示一個錯誤資訊,這將立即提示你忘了第二個等號!

條件可以比單個的比較是否相等來得更複雜。回憶我們修改的welcome.php3,它是可以同時擷取firstname和lastname的。如果我們想要為某個特定的人顯示一個特殊的資訊,我們可以同時比較這兩個變數:

if ( "Kevin" == $firstname and "Yank" == $lastname ) {
echo( "Welcome, oh glorious leader!" );
}

只有$firstname的值是Kevin,而且$lastname的值是Yank時這個條件 才會返回真。and的意義就是只有兩個比較都為真時,整個條 件才會返回真。還有一個符號是or,這使得兩個比較中至少有一個為真時,整個條件就返回真。如果你對JavaScript和C中的運算子 (&&(and)和||(or))熟悉的話,你也可以在PHP中同樣地使用它們。

在下面我們將看到一些更複雜的比較。現在,我們只需要對if-else語句有個基本的理解就可以了。

另一個常用的PHP控制語句是while迴圈。if-else語句使我們可以根據條件選擇是否執行一組語句,while迴圈使我們可以根據條件來決定重複執行一組語句多少次。while迴圈的基本格式應該是這樣的:

while ( ) {  //只要是真時反覆執行的語句  }

這和一個沒有else子句的if-else 語句非常相象。不同點在於當條件為真時語句執行完後,將不再是接著執行結束符(})後面的語句,而是再次檢查條件。如果這個條件仍為真。將會重複執行語 句,直到條件不再為真時為止。當這個條件首次返回假時(不管是第幾次檢查它),將會跳轉執行迴圈後面的語句(在結束符後面)。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.