Oké。我看到了這段代碼,我很好奇它是如何工作的以及它是如何工作的。 任何人都可以解釋這個給我嗎? 謝謝!未知的一塊PHP
$_SESSION['langtype']
= (empty($_SESSION['langtype'])) ? 'false' : $_SESSION['langtype'];
Oké。我看到了這段代碼,我很好奇它是如何工作的以及它是如何工作的。 任何人都可以解釋這個給我嗎? 謝謝!未知的一塊PHP
$_SESSION['langtype']
= (empty($_SESSION['langtype'])) ? 'false' : $_SESSION['langtype'];
它把虛假$_SESSION['langtype']
是沒有設置的值,否則它保持當前值。
也http://php.net/manual/en/language.operators.comparison.php#language.operators.comparison.ternary
現在很快! – ppeterka
它把在$_SESSION['langtype']
"false"
(作爲一個字符串,而不是BOOL VALUE)看的情況下$_SESSION['langtype']
是空的(或與鍵langtype
值不存在),否則保持相同的值。
這可能是壞主意,把"false"
爲字符串。例如,如果這部傑作的作者決定進行檢查if ($_SESSION['langtype']) { }
,它將在任何情況下返回true。我很好奇這種解決方案應該是合理的。
其短手if-else
聲明。如果(empty($_SESSION['langtype']))
然後$_SESSION['langtype'] = false
其他$_SESSION['langtype'] = $_SESSION['langtype']
這是本聲明中三元操作
$_SESSION['langtype'] = (empty($_SESSION['langtype'])) ? 'false' : $_SESSION['langtype'];
這意味着如果Session變量命名langtype爲空,則返回false,否則使用langtype相同定義
之後的部分?代表值,如果函數
empty($_SESSION['langtype'])真(意思是,如果它是空的,然後將其設置虛假或未經定義的變量),即
$_SESSION['langtype'] = false;
和部分之後:表示else語句,即如果langtype不爲空,然後繼續它,因爲它是(等於定義值)
$_SESSION['langtype']=$_SESSION['langtype'];
,如果它沒有被設置(真),那麼這將是其他錯誤,如果它(假)它生病打印會話值
這就是所謂的三元運營商。它由條件表達式和兩個條件評估的返回值組成。
// if expression evaluates to true first value will be returned,
// otherwise it will the second
$variable = (expression) ? 'value if true' : 'value if false';
$_SESSION['langtype'] = (empty($_SESSION['langtype'])) ? 'false' : $_SESSION['langtype'];
對於一個初學者上面的代碼是一樣長的版本,你可能知道
<?php
if(empty($_SESSION['langtype'])) {
$_SESSION['langtype'] = 'false';
} else {
$_SESSION['langtype'] = $_SESSION['langtype'];
}
?>
它設置$ _SESSION [「langtype」]假,如果它沒有設置。否則,它只是當前值 – PoeHaH
再設置它的一個三元運算符查看這個鏈接http://php.net/manual/en/language.operators.comparison.php – pkachhia
你不應該使用「isset」,如果」不知道數組元素是否設置?因爲你看到,如果langtype是'0',它也會將它設置爲'false'。 – ATaylor