你真的了解三元運算子嗎?

2022-07-10 18:06:10 字數 774 閱讀 2263

三元運算子大家平常肯定不少用,但是,你真的了解三元運算子嗎?

表示式(expr1) ? (expr2) : (expr3)在 expr1 求值為true時的值為 expr2,在 expr1 求值為false時的值為 expr3。

比較簡單,和字面意思一樣,expr1 為真時返回 expr2,反之返回 expr3。

自 php 5.3 起,可以省略三元運算子中間那部分。表示式expr1 ?: expr3在 expr1 求值為true時返回 expr1,否則返回 expr3。

需要注意的是,當 expr1 為表示式時,返回值為結果值。例如:

$b = -3;

$a = $b>0 ?: 'b is little'; //

bool(true)

為變數則返回對應的變數值。

$b = 3;

$a = $b ?: 'b is little'; //

int 3

php 7 開始存在 "??" (null 合併)運算子。主要用來作 isset 的判斷。

當 expr1 為null,表示式(expr1) ?? (expr2)等同於 expr2,否則為 expr1。

使用過程中一定要先明確表示式的返回結果,要不然挖坑把自己埋了,排錯都萬萬想不到會是乙個表示式的問題。別問為啥知道的,問就是自己踩過坑。

三元運算子

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