三元運算子()

三元運算子可以被認為是內聯 if 語句。它由三部分組成。operator 和兩個結果。語法如下:

$value = <operator> ? <true value> : <false value>

如果 operator 被評估為 true,則返回第一個塊中的值(<true value>),否則將返回第二個塊中的值(<false value>)。由於我們將 $value 設定為我們的三元運算子的結果,因此它將儲存返回的值。

例:

$action = empty($_POST['action']) ? 'default' : $_POST['action'];

如果 empty($_POST['action']) 評估為真,則 $action 將包含字串'default'。否則它將包含 $_POST['action'] 的值。

表示式 (expr1) ? (expr2) : (expr3) 如果 expr1 評估為 true 則評估為 expr2,如果 expr1 評估為 false 則表示 expr3

可以省略三元運算子的中間部分。如果 expr1 的計算結果為 TRUE,則表示式 expr1 ?: expr3 返回 expr1,否則返回 expr3?:通常被稱為貓王運算子。

這類似於 Null Coalescing 運算子 ?? ,除了 ?? 要求左運算元正好是 null?:嘗試將左運算元解析為布林值並檢查它是否解析為 boolean false

例:

function setWidth(int $width = 0){
    $_SESSION["width"] = $width ?: getDefaultWidth();
}

在此示例中,setWidth 接受寬度引數或預設值 0,以更改寬度會話值。如果 $width 為 0(如果未提供 $width),將解析為布林值 false,則使用 getDefaultWidth() 的值。如果 $width 沒有解析為 boolean false,則不會呼叫 getDefaultWidth() 函式。

有關將變數轉換為布林值的更多資訊,請參閱型別