PHP 三元運算子

2021-10-06 10:40:44 字數 622 閱讀 6204

$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

三元運算子

根據條件執行兩個語句中的其中乙個。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和...

三元運算子

一元運算子 只需要乙個資料就可以操作的運算子 例如 取反!自增 二元運算子 需要兩個資料才可以操作的運算子。例如 加法 三元運算子 需要三個資料才可以進行操作的運算子 格式 資料型別 變數名稱 條件判斷?表示式a 表示式b 流程 首先判斷條件是否成立 如果成立為true,那麼將表示式a的值賦值給左側...