Php 如何在三元运算符中生成if-else

Php 如何在三元运算符中生成if-else,php,Php,我正在查看页面中查找电子邮件。电子邮件有两种到达目的地的方式。通过邮寄或会议。 如果是$\u POST,那么我想使用$\u POST电子邮件,或者我想使用会话中保存的电子邮件。 目前我的代码如下 $email = (isset($_POST['email']) ? $_POST['email'] : ''); 用最少的代码行做这件事的最佳方法是什么?我猜你只是在寻找这个(假设电子邮件地址存储在$\u会话数组中的email键下): 还是我误解了你的问题?我猜你只是在寻找这个(假设电子邮件地址存储

我正在查看页面中查找电子邮件。电子邮件有两种到达目的地的方式。通过邮寄或会议。 如果是$\u POST,那么我想使用$\u POST电子邮件,或者我想使用会话中保存的电子邮件。 目前我的代码如下

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

用最少的代码行做这件事的最佳方法是什么?我猜你只是在寻找这个(假设电子邮件地址存储在
$\u会话
数组中的
email
键下):


还是我误解了你的问题?

我猜你只是在寻找这个(假设电子邮件地址存储在
$\u会话
数组的
email
键下):

还是我误解了你的问题?

试试这个:

$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 = '';
    }
}
试试这个:

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

对@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');

请注意,best通常不等于最少的代码行。虽然程序越短越好,但您的目标应该是编写高效且可维护的代码。可维护性的一部分是可读性,这通常与最少的代码行直接对立。请注意,best通常不等于最少的代码行。虽然程序越短越好,但您的目标应该是编写高效且可维护的代码。可维护性的一部分是可读性,这通常与最少行代码直接对立。请注意,如果未设置这两个值,则
$email
将为
NULL
,而不是空字符串。此外,如果未设置会话变量,这将在默认配置下产生警告。请注意,如果未设置这两个值,则
$email
将为
NULL
,而不是空字符串。此外,如果未设置会话变量,则在默认配置下会产生警告。