在PHP 7中,有兩個類似的語法結構:“??”和“?:”,它們都是用于處理條件判斷和返回值的運算符。盡管它們看起來相似,但它們的作用和用法有一些區(qū)別。
- "?:"是三目運算符,語法格式為:$result = $test ? t e s t : ′ ′ ; 意思就是當 test:'';意思就是當 test:′′;意思就是當test存在時(即empty($test)為false),則返回它本身,否則返回空(當然也可以返回其他,這里的空只是舉個例子)
- "??"是php7新引入的語法,它相當于是isset($result[‘key’]) ?
$result[‘key’]:‘’;意思是若這個key的變量存在且值不為NULL,否則返回空。
在實際的使用中,需要區(qū)分!不然很容易出現(xiàn)問題!
- “??”運算符(Null Coalescing Operator):
“??”運算符是PHP 7中引入的一個新特性,被稱為空合并運算符。它的語法形式為expr1 ?? expr2
。它的作用是如果expr1
不為null
,則返回expr1
的值,否則返回expr2
的值。這個運算符主要用于簡化對變量是否為空的判斷,并提供一個默認值。
例如:
$result = $value1 ?? $value2;
在這個例子中,如果 $value1
不為 null
,則 $result
將被賦值為 $value1
,否則將被賦值為 $value2
。
2. “?:”運算符(Ternary Conditional Operator):
“?:”運算符是PHP中的三元條件運算符,也被稱為三元運算符。它的語法形式為 expr1 ? expr2 : expr3
。它的作用是根據 expr1
的真假來返回不同的值。如果 expr1
為真(非零),則返回 expr2
的值,否則返回 expr3
的值。
例如:
$result = $condition ? $value1 : $value2;
在這個例子中,如果 $condition
為真,$result
將被賦值為 $value1
,否則將被賦值為 $value2
。
1.[??] NULL 合并操作符
$aaa ?? $bbb
即
isset($aaa) ? $aaa : $bbb;
注:isset() 即已設置并且不為NULL
2.[?:] 三元運算符的簡寫形式
$aaa ?: $bbb
即
$aaa ? $aaa : $bbb;
注意:當$aaa未被聲明時,[??]不會報錯(因為用了isset),[?:]會報一個Notice
總結:文章來源:http://www.zghlxwxcb.cn/news/detail-840820.html
- “??”運算符用于判斷一個變量是否為 null,如果不是 null,則返回該變量的值,否則返回指定的默認值。
- “?:”運算符用于根據條件的真假返回不同的值,類似于一個簡化的if-else語句。
需要注意的是,“??”運算符只能用于判斷是否為 null,而“?:”運算符可以用于任何條件的判斷。文章來源地址http://www.zghlxwxcb.cn/news/detail-840820.html
到了這里,關于PHP兩個三元運算符“??” 和“?:”的用法和區(qū)別的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!