我在我的查看頁面尋找電子郵件。電子郵件有兩種方式可以到達那裏。通過POST或SESSION。 如果它是一個$ _POST,那麼我想使用$ _POST電子郵件其他方式我想使用會話中保存的電子郵件。 目前我的代碼如下如何使這個如果在三元運算符
$email = (isset($_POST['email']) ? $_POST['email'] : '');
最新最好的方式做到這一點的代碼行至少
我在我的查看頁面尋找電子郵件。電子郵件有兩種方式可以到達那裏。通過POST或SESSION。 如果它是一個$ _POST,那麼我想使用$ _POST電子郵件其他方式我想使用會話中保存的電子郵件。 目前我的代碼如下如何使這個如果在三元運算符
$email = (isset($_POST['email']) ? $_POST['email'] : '');
最新最好的方式做到這一點的代碼行至少
我猜你只是尋找這個(假設電子郵件地址被存儲在下鍵email
的$_SESSION
陣列):
$email = (isset($_POST['email']) ? $_POST['email'] : $_SESSION['email']);
還是我誤解你的問題?
請注意,如果這兩個值均未設置,則$ email將爲NULL,而不是空字符串。另外,如果未設置會話變量,則會在默認配置下產生警告。 – 2012-07-14 03:47:43
試試這個:
$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 = '';
}
}
一個有趣的替代@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');
只是注意正確的答案最通常並不代表最少的代碼行。雖然較短的程序通常可以更好,但您的目標應該是編寫高效且可維護的代碼。可維護性的一部分是可讀性,這通常與代碼的直接相反。 – 2012-07-14 03:46:26