## *elseif*/*else if*
(PHP 4, PHP 5, PHP 7)
*elseif*,和此名稱暗示的一樣,是 *if* 和 *else* 的組合。和 *else* 一樣,它延伸了 *if* 語句,可以在原來的 *if* 表達式值為 **`FALSE**` 時執行不同語句。但是和 *else* 不一樣的是,它僅在 *elseif* 的條件表達式值為 **`TRUE**` 時執行語句。例如以下代碼將根據條件分別顯示 a is bigger than b,a equal to b 或者 a is smaller than b:
```
<?php
if?($a?>?$b)?{
????echo?"a?is?bigger?than?b";
}?elseif?($a?==?$b)?{
????echo?"a?is?equal?to?b";
}?else?{
????echo?"a?is?smaller?than?b";
}
?>
```
在同一個 *if* 語句中可以有多個 *elseif* 部分,其中第一個表達式值為 **`TRUE**`(如果有的話)的 *elseif* 部分將會執行。在 PHP 中,也可以寫成“else if”(兩個單詞),它和“elseif”(一個單詞)的行為完全一樣。句法分析的含義有少許區別(如果你熟悉 C 語言的話,與之行為相同),但是底線是兩者會產生完全一樣的行為。
*elseif* 的語句僅在之前的 *if* 和所有之前 *elseif* 的表達式值為 **`FALSE**`,并且當前的 *elseif* 表達式值為 **`TRUE**` 時執行。
> **Note**: 必須要注意的是 *elseif* 與 *else if* 只有在類似上例中使用花括號的情況下才認為是完全相同。如果用冒號來定義 *if*/*elseif* 條件,那就不能用兩個單詞的 *else if*,否則 PHP 會產生解析錯誤。
```
<?php
/*?不正確的使用方法:?*/
if($a?>?$b):
????echo?$a."?is?greater?than?".$b;
else?if($a?==?$b):?//?將無法編譯
????echo?"The?above?line?causes?a?parse?error.";
endif;
/*?正確的使用方法:?*/
if($a?>?$b):
????echo?$a."?is?greater?than?".$b;
elseif($a?==?$b):?//?注意使用了一個單詞的?elseif
????echo?$a."?equals?".$b;
else:
????echo?$a."?is?neither?greater?than?or?equal?to?".$b;
endif;
?>
```
- 序言
- 簡介
- PHP是什么?
- PHP能做什么?
- 基本語法
- 類型
- boolean(布爾型)
- integer(整型)
- float(浮點型)
- string(字符串)
- array(數組)
- object(對象)
- callable(可調用)
- resource(資源)
- NULL(無類型)
- 偽類型
- 類型轉換的判別
- 變量
- 基礎
- 預定義變量
- 變量范圍
- 可變變量
- 來自PHP之外的變量
- 常量
- 語法
- 魔術常量
- 表達式
- 運算符
- 運算符優先級
- 算術運算符
- 賦值運算符
- 位運算符
- 比較運算符
- 錯誤控制運算符
- 執行運算符
- 遞增/遞減運算符
- 邏輯運算符
- 字符串運算符
- 數組運算符
- 類型運算符
- 流程控制
- if
- else
- elseif/else if
- 流程控制的替代語法
- while
- do-whille
- for
- foreach
- break
- continue
- switch
- declare
- return
- require
- include
- require_once
- include_once
- goto
- 函數
- 用戶自定義函數
- 函數的參數
- 返回值
- 可變函數
- 內部 (內置)函數
- 匿名函數
- 類與對象
- 簡介
- 基本概念
- 屬性
- 類的自動加載
- 構造函數
- 訪問控制(可見性)