2012-07-14 33 views
0

我在我的查看頁面尋找電子郵件。電子郵件有兩種方式可以到達那裏。通過POST或SESSION。 如果它是一個$ _POST,那麼我想使用$ _POST電子郵件其他方式我想使用會話中保存的電子郵件。 目前我的代碼如下如何使這個如果在三元運算符

$email = (isset($_POST['email']) ? $_POST['email'] : ''); 

最新最好的方式做到這一點的代碼行至少

+1

只是注意正確的答案最通常並不代表最少的代碼行。雖然較短的程序通常可以更好,但您的目標應該是編寫高效且可維護的代碼。可維護性的一部分是可讀性,這通常與代碼的直接相反。 – 2012-07-14 03:46:26

回答

3

我猜你只是尋找這個(假設電子郵件地址被存儲在下鍵email$_SESSION陣列):

$email = (isset($_POST['email']) ? $_POST['email'] : $_SESSION['email']); 

還是我誤解你的問題?

+1

請注意,如果這兩個值均未設置,則$ email將爲NULL,而不是空字符串。另外,如果未設置會話變量,則會在默認配置下產生警告。 – 2012-07-14 03:47:43

0

試試這個:

$email = (isset($_POST['email']) ? $_POST['email'] : (isset($_SESSION['email'])) ? $_SESSION['email'] : ''); 

這是相同的:

if(isset($_POST['email'])) { 
    $email = $_POST['email']; 
} else { 
    if(isset($_SESSION['email'])) { 
     $email = $_SESSION['email']; 
    } else { 
     $email = ''; 
    } 
} 
0

一個有趣的替代@Gabriel桑托斯

$input = function($param, $default = '') { 
    static $input; 

    if (null === $input) { 
     $input = array_merge($_SESSION, $_POST); 
    } 

    return isset($input[$param]) ? $input[$param] : $default; 
}; 


// get input 
$email = $input('asd');