PHP 三元運算符


$a = $a ? $a : 1;//第一種 $a = $a ? : 1;//第二種

第二種寫法從 PHP 5.3 引入,表示若 $a 返回值為真時,取 $a 的返回值。 此外,在 PHP7 中引入了??運算符

$a = $a ?? 1;

該表達式與第二種寫法類似,可以達到相同的效果。但??運算符是以判斷 $a 變量是否存在於上下文環境中作為條件,而三元運算符不具備這種判斷。所以??運算符可 用於判斷 $a 變量不存在的情況(也可用於數組)相當於isset(),而使用三元運算符判斷一個未定義的變量,PHP 會拋出異常。也正是因為這樣,用??判斷一個賦值為 0 的變量的時候結果是不一樣的。

$a=0; $c=1; $b=$a??$c; // isset ($a) ? $a : $c echo 'a:'.$a.',b:'.$b.',c:'.$c; //a:0,b:0,c:1 $a=0; $c=1; $b=$a?$a:$c; echo 'a:'.$a.',b:'.$b.',c:'.$c; //a:0,b:1,c:1
 
轉自:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM