国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開(kāi)發(fā) > PHP > 正文

php三元運(yùn)算符知識(shí)匯總

2024-05-04 23:37:13
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

三元運(yùn)算符語(yǔ)法:條件 ? 結(jié)果1 : 結(jié)果2 說(shuō)明:?jiǎn)柼?hào)前面的位置是判斷的條件,如果滿足條件時(shí)結(jié)果1,不滿足時(shí)結(jié)果2。下面我們來(lái)詳細(xì)探討下。

今天在改論文在線的時(shí)候遇到了一個(gè)語(yǔ)句看不懂:

 

 
  1. $if_summary = $row['IF_SUMMARY']==2?'是':'否'

后來(lái)百度后發(fā)現(xiàn)是PHP的三元運(yùn)算符

這句話的意思就等于是

 

 
  1. if($row['IF_SUMMARY']==2){ 
  2. $if_summary="是"
  3. }else
  4. $if_summary="否"; 

三元運(yùn)算符的功能與“if...else”流程語(yǔ)句一致,它在一行中書寫,代碼非常精練、執(zhí)行效率更高。

在PHP程序中恰當(dāng)?shù)厥褂萌\(yùn)算符能夠令腳本更為簡(jiǎn)潔、高效。

代碼格式如下:(expr1) ? (expr2) : (expr3);

解釋:如果條件“expr1”成立,則執(zhí)行語(yǔ)句“expr2”,否則執(zhí)行“expr3”。

實(shí)現(xiàn)同樣的功能,若使用條件流程語(yǔ)句,就需要書寫多行代碼:

 

 
  1. if(expr1) { 
  2.  
  3. expr2; 
  4. else { 
  5. expr3; 

可見(jiàn),前面所說(shuō)的三元運(yùn)算符之好并非夸張。可是,多數(shù)情況下我們只在代碼較為簡(jiǎn)單的時(shí)候使用三元運(yùn)算符,即執(zhí)行語(yǔ)句只為單句的時(shí)候。如:

 

 
  1. $a>$b ? print "a大于b" : print "a小于b"

事實(shí)上,三元運(yùn)算符可以擴(kuò)展使用,當(dāng)設(shè)置的條件成立或不成立,執(zhí)行語(yǔ)句都可以不止一句,試看以下格式:

(expr1) ? (expr2).(expr3) : (expr4).(expr5);

我們非常明顯地看到,多個(gè)執(zhí)行語(yǔ)句可以使用用字符串運(yùn)算符號(hào)(“.”)連接起來(lái),各執(zhí)行語(yǔ)句用小角括號(hào)包圍起來(lái)以表明它是一個(gè)獨(dú)立而完整的執(zhí)行語(yǔ)句。這樣擴(kuò)展后它的功能更為逼近“if...else”流程語(yǔ)句。

同時(shí)三元運(yùn)算符還可以嵌套使用。例如,a大于b成立時(shí):如果a小于c,那么x=c-a否則x=a-c;否則a小于b成立時(shí):如果b小于c,那么x=c-b否則x=b-c:

$a>$b ? $x=($a<$c ? $c-$a : $a-$c) : $x=($b<$c ? $c-$b : $b-$c);

嵌套使用的三元運(yùn)算符可讀性不太好,日后對(duì)代碼的維護(hù)極可能存在問(wèn)題,但比起“if...else”之類的流程語(yǔ)句,在上述情形之下,它的確太簡(jiǎn)練了,這是它的誘人之處。

對(duì)于喜歡偷懶和追求代碼簡(jiǎn)潔的人來(lái)說(shuō),用三元運(yùn)算符取代if流程語(yǔ)句應(yīng)該是絕佳的選擇。即使不用考慮“三元”中條件句以外的任意某一“元”,使用三元運(yùn)算符仍然比if語(yǔ)句簡(jiǎn)練。以下語(yǔ)句的語(yǔ)法是正確的,它們以小解引號(hào)的方式忽略了第二或第三“元”:

 

 
  1. $a>$b ? print "Yes" : ""
  2. $a>$b ? '': print 'No'

應(yīng)該注意的是:在使用三元運(yùn)算符時(shí),建議使用print語(yǔ)句替代echo語(yǔ)句。

注意下列一串語(yǔ)句的理解:

 

 
  1. $str = $_GET['abc'] ? 'wangjinbo' : 'wjb'

這里不能理解為:當(dāng)$str等于$_GET['abc'] 時(shí),賦值為 'wangjinbo' 否則賦值為 'wjb';因?yàn)橐唬号袛嘞嗟葢?yīng)該用==;因原二:三元算符的語(yǔ)法是如上所示:(expr1) ? (expr2) : (expr3),顯然上面的二元,三元'wangjinbo'或'wjb'不能單獨(dú)構(gòu)成一個(gè)有意義的表達(dá)式;

正確理解是:當(dāng)$_GET['abc']為空(也就是否,PHP中 '',null,0,undifine,都等效布爾值false)時(shí),將$str賦值為'wangjinbo',否則賦值為'wjb';

以上所述就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 榆社县| 师宗县| 万山特区| 南充市| 汕尾市| 溆浦县| 玛纳斯县| 洪江市| 丰都县| 墨竹工卡县| 甘肃省| 道真| 大理市| 弥渡县| 宁安市| 定边县| 宜君县| 丰镇市| 卓尼县| 萨嘎县| 廉江市| 泉州市| 澳门| 洮南市| 江山市| 平乡县| 巴塘县| 环江| 泰来县| 灌南县| 西充县| 金山区| 屏东市| 礼泉县| 法库县| 东光县| 利川市| 封开县| 广元市| 滕州市| 文登市|