三元運算子()
三元運算子可以被認為是內聯 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()
函式。
有關將變數轉換為布林值的更多資訊,請參閱型別 。