三元運算符的功能與「if...else」流程語句一致,它在一行中書寫,程式碼非常精練、執行效率更高。
在PHP程式中適當地使用三元運算子能夠讓腳本更為簡潔、更有效率。
程式碼格式如下:(expr1) ? (expr2) : (expr3);
解釋:如果條件“expr1”成立,則執行語句“expr2”,否則執行“ expr3」。
實現同樣的功能,若使用條件流程語句,就需要書寫多行程式碼:
if(expr1) { expr2; } else { expr3; }
可見,前面所說的三元運算子之好並非誇張。可是,多數情況下我們只在程式碼較簡單的時候使用三元運算符,也就是執行語句只為單句的時候。如:
$a>$b ? print "a大于b" : print "a小于b";
事實上,三元運算子可以擴充使用,當設定的條件成立或不成立,執行語句都可以不只一句,試看以下格式:
(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:
#$ a>$b ? $x=($afe786e9bd474479e9113d4ce4d74bff4 true 和'xx' = > true.
不知這樣的過程是否是蛋痛, 確實是讓人很難理解...
#最後再次回到上面的程式碼, 將其變為像C一樣的向右結合吧:
<?php $a=1;$b=2;$c=3;$d=4; echo $a<$b?'xx':($a<$c?'yy':($a<$d?'zz':'oo')); // 括号换下位置就行了, php里括号省不得 ?>
以上是php三元運算子結合及其使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!