通常我所做的if/else
條件是這樣的:使條件成爲一條線?
if(empty($data['key']))
{
$err = "empty . $key ";
}
,但我看到有是ternary operator.
我真不明白這是如何工作..有人能告訴我一個例子嗎?我怎樣才能在三元邏輯中轉換這種情況?
通常我所做的if/else
條件是這樣的:使條件成爲一條線?
if(empty($data['key']))
{
$err = "empty . $key ";
}
,但我看到有是ternary operator.
我真不明白這是如何工作..有人能告訴我一個例子嗎?我怎樣才能在三元邏輯中轉換這種情況?
我不確定你想要用你的代碼做什麼。 您檢查它是否爲空,然後嘗試通過集中一個空值將$err
設置爲一個值。
也許這更可能是你想要的。
// Ternary operator
$err = empty($data['key']) ? "empty key" : '';
# -----------IF-----------------THEN ---- ELSE
// Ternary operator (nesting) (not recommended)
// Changing empty() to isset() you must rewrite the entire logic structure.
$err = empty($data) ? 'empty' : is_numeric($data) ? $data : 'not numeric';
# ---------IF--------- THEN -------ELSEIF-----------THEN-----ELSE
// Null Coalescing operator ?? available in PHP 7.
$err = $data['key'] ?? 'empty value';
# ---- IF ISSET USE --- ELSE value
// Nesting
$err = $data['key'] ?? $_SESSION['key'] ?? $_COOKIE['key'] ?? 'no key';
# IF ISSET USE -- IF ISSET USE ------ IF ISSET USE ------ELSE
如果我有多個條件要做?我想存儲在同一個變量,我的意思是在空檢查is_numeric等等..在同一個err變量後,我該如何做到這一點?謝謝 –
和添加類似if(空($ data)&&!is_numeric($ data))是可能的嗎? –
嵌套三元操作很快會污染代碼,不推薦,因爲它也很難閱讀,我寧願推薦修補上面的評論中的if語句(是的,可能的) – Xorifelse
三元運算符記錄**非常多**。你真的需要開一個新的問題嗎?爲什麼不是Google呢? '$ var =(?:);' –
所以應該是這樣的:'$ var =(empty($ data ['key'])$ error =「empty。$關鍵「:繼續;'? –
http://php.net/manual/en/language.operators.comparison.php#language.operators.comparison.ternary –