三元運算符的功能與「if....else」流程語句一致,它在一行中書寫,代碼精練、執行效率高。在PHP程序中恰當地使用三元運算符可以讓腳本更爲簡潔、高效。代碼的語法以下:php
1
|
(expr1)?(expr2):(expr3);
//表達式1?表達式2:表達式3
|
解釋:若是條件「expr1」成立,則執行語句「expr2」,不然執行「expr3」。數組
1
2
3
4
5
6
|
<?PHP
$a
=10;
$b
=20;
$c
=
$a
>
$b
?(
$a
-
$b
):(
$a
+
$b
);
//說明:若是變量a大於變量b則執行問號後面的,不然就執行:冒號後面的
echo
$c
;
?>
|
表達式裏能夠是函數、數組等等。函數
事實上,三元運算符能夠擴展使用,當設置的條件成立或不成立,執行語句均可以不止一句,試看如下格式:spa
1
|
(expr1) ? (expr2).(expr3) : (expr4).(expr5);
|
咱們很是明顯地看到,多個執行語句可使用用字符串運算符號(「.」)鏈接起來,各執行語句用小角括號包圍起來以代表它是一個獨立而完整的執行語句。這樣擴展後它的功能更爲逼近「if...else」流程語句。
.net
同時三元運算符還能夠嵌套使用。例如,a大於b成立時:若是a小於c,那麼x=c-a不然x=a-c;不然a小於b成立時:若是b小於c,那麼x=c-b不然x=b-c:code
1
|
$a
>
$b
?
$x
=(
$a
<
$c
?
$c
-
$a
:
$a
-
$c
) :
$x
=(
$b
<
$c
?
$c
-
$b
:
$b
-
$c
);
|
嵌套使用的三元運算符可讀性不太好,往後對代碼的維護很可能存在問題,因此像這種狀況咱們仍是直接使用if else if 來實現吧。htm
感謝閱讀,但願能幫助到你們,謝謝你們對本站的支持!ci