2015-04-23 23 views
3

是否有這樣的oneliner?一個不錯的三元OP?PHP,速記,如果..使用三元運算符

$F_NAME = $_SESSION['USR']['F_NAME']; 
if(isset($_POST['F_NAME'])) {$F_NAME = $_POST['F_NAME'];} 

基本上「如果POST發送,顯示,即使後是空的,否則抓住從會議的價值,但前提是在沒有設置好後或空」

真的分裂這裏...

毛髮尋找這樣的事情:

$F_NAME = ? ($F_NAME ? isset($_POST['F_NAME']) : $_SESSION['USR']['F_NAME']); 
+0

$ F_NAME =(isset($ _ POST [ 'F_NAME'])? $ _POST ['F_NAME']:$ _SESSION ['USR'] ['F_NAME']); –

回答

3

它應該是:

(conditions) ? true : false 
    satisfies <--^  ^----> did not satisfy 

所以,這相當於爲:

$F_NAME = isset($_POST['F_NAME']) ? $_POST['F_NAME'] : $_SESSION['USR']['F_NAME']; 
+0

不錯。謝謝。 所以它看起來:(條件?真實結果:錯誤的結果) –

+0

是的,有'?'像你有'($ F_NAME?isset($ _ POST ['F_NAME'])'在條件內是不正確 – Ghost

+0

真棒。 我扔其與{可變}設定選項 ' 的foreach($ _SESSION [ 'USR']爲$鍵=> $值){ \t $ {$鍵} \t =(isset一個foreach($ _ POST [$ key])\t?$ _POST [$ key] \t:$ _SESSION ['USR'] [$ key]); }' –

1

如鬼響應,或甚至更短

$F_NAME = $_POST['F_NAME'] ? : $_SESSION['USR']['F_NAME']; 
+0

謝謝!幽靈然而是正確的,有2個條件我必須滿足,該聲明不能默認爲$ _SESSION ['USR'] ['F_NAME'] –

+0

但您可以通過簡寫 – Tom