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