php - 定义默认数组值的最简洁的方式

标签 php arrays associative-array conventions ternary-operator

是否有更简洁的方法来检查数组值以防止 PHP 通知?目前我这样做:

$email      = (isset($_POST['user_email']))      ? $_POST['user_email']      : '';
$first_name = (isset($_POST['user_first_name'])) ? $_POST['user_first_name'] : '';
$last_name  = (isset($_POST['user_last_name']))  ? $_POST['user_last_namel'] : '';
$birthday   = (isset($_POST['user_last_name']))  ? $_POST['user_last_namel'] : '';

有没有办法像 JavaScript 那样只提供一个默认值,就像这样?

user.email = response.email || '';

我不想隐藏通知,但这些丑陋的检查使我的代码变得困惑。我正在使用 PHP 5.2.6

最佳答案

你可以创建一个函数:

$email      = getPost('user_email');
$first_name = getPost('user_first_name');
$last_name  = getPost('user_last_name');
$birthday   = getPost('user_birthday');


function getPost($key, $default = '')
{
    if (isset($_POST[$key])) {
        return $_POST[$key];
    }
    return $default;
}

将它放在一个函数中还可以让您更轻松地进行额外的清理,例如,trim(),如果需要的话。

您还可以传递将返回的默认值:

$flavor = getPost('flavor', 'vanilla'); // if $_POST['flavor'] is not set, 'vanilla' is returned

关于php - 定义默认数组值的最简洁的方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8855622/

相关文章:

datetime - 为什么 map[time.Time]string 有时不起作用?

php - 我想知道 web.php 中使用的类 Route

php - 我应该允许 2 个字符的密码吗?

php - 我应该如何从 PostgreSQL 下的一系列时间段中找到列的总和?

javascript - 无法读取数组的属性

java - 在 Java 中创建包含数组的泛型类

c++ - 如何在不使用 std 库的情况下将数组值分配给构造函数中的类成员数组?

javascript/jquery - 向实例化对象添加属性

php - 从 PHP 中的关联数组中弹出键和值

php - AJAX请求后如何访问PHP super 全局post变量