如何在三元运算符中进行此操作

时间:2012-07-14 03:30:24

标签: php

我正在浏览页面中查找电子邮件。电子邮件有两种方式可以实现。通过POST或SESSION。 如果它是$ _POST,那么我想使用$ _POST电子邮件,我希望使用会话中保存的电子邮件。 目前我的代码在下面

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

最简单的方法是用最少的代码行

3 个答案:

答案 0 :(得分:3)

我猜你只是在寻找这个(假设电子邮件地址存储在密钥$_SESSION下的email数组中):

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

或者我误解了你的问题?

答案 1 :(得分: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 = '';
    }
}

答案 2 :(得分:0)

@Gabriel Santos正确答案的一个有趣的替代方案

$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');