三元運算子的功能與「if....else」流程語句一致,它在一行中書寫,**精練、執行效率高。在php程式中恰當地使用三元運算子能夠讓指令碼更為簡潔、高效。**的語法如下:?1
(expr1)?(expr2):(expr3);
//表示式1?表示式2:表示式3
解釋:如果條件「expr1」成立,則執行語句「expr2」,否則執行「expr3」。?1
2345
6<?php
$a
=10;
$b
=20;
$c
=
$a
>
$b
?(
$a
-
$b
):(
$a
+
$b
);
//說明:如果變數a大於變數b則執行問號後面的,否則就執行:冒號後面的
echo
$c
;
?>
表示式裡可以是函式、陣列等等。
事實上,三元運算子可以擴充套件使用,當設定的條件成立或不成立,執行語句都可以不止一句,試看以下格式:?1
(expr1) ? (expr2).(expr3) : (expr4).(expr5);
我們非常明顯地看到,多個執行語句可以使用用字串運算符號(「.」)連線起來,各執行語句用小角括號包圍起來以表明它是乙個獨立而完整的執行語句。這樣擴充套件後它的功能更為逼近「if...else」流程語句。
同時三元運算子還可以巢狀使用。例如,a大於b成立時:如果a小於c,那麼x=c-a否則x=a-c;否則a小於b成立時:如果b小於c,那麼x=c-b否則x=b-c:?1
$a
>
$b
?
$x
=(
$a
<
$c
?
$c
-
$a
:
$a
-
$c
) :
$x
=(
$b
<
$c
?
$c
-
$b
:
$b
-
$c
);
巢狀使用的三元運算子可讀性不太好,日後對**的維護極可能存在問題,所以像這種情況我們還是直接使用if else if 來實現吧。
PHP 三元運算子
a a a 1 第一種 a a 1 第二種第二種寫法從 php 5.3 引入,表示若 a 返回值為真時,取 a 的返回值。此外,在 php7 中引入了?運算子 a a 1 該表示式與第二種寫法類似,可以達到相同的效果。但?運算子是以判斷 a 變數是否存在於上下文環境中作為條件,而三元運算子不具備這種...
三元運算子
根據條件執行兩個語句中的其中乙個。test?語句1 語句2引數 test 任何boolean 表示式。語句1當 test 是true時執行的語句。可以是復合語句。語句2當 test 是false時執行的語句。可以是復合語句。說明?運算子是if.else語句的快捷方式。它通常被用作較大表示式的一部分,...
三元運算子
先定義a和b 兩個數比較 int a 123 int b 144 通過定義big來反映a和b誰更小 int big a b?a b 通過定義small來反映a和b誰更小 int small asystem.out.println a和b之間較大的數 big system.out.println a和...