抽象获取数组值,如果为空则为 null

abstract gettting array value or null if empty

当未设置数组 key/index 时,我通常需要 NULL,所以我正在考虑将 isset(...) ? ... : ...; 抽象成一个函数,如:

function valueOrNull($array,$key){
    return isset($array[$key]) 
            ? $array[$key] : NULL;
}

那么我会称它为:

$somePerson->id = valueOrNull($data, 'id');

然后 $somePerson->id 将是 NULL,在 $_POST 请求创建新人的情况下,而从数据库加载时,它会将 id 作为整数

这是个好主意吗?是我太懒了吗?我只是讨厌打字$array['key'],所以打两次是非常烦人的。

那么命名 valueOrNull 呢?这是一个足够清楚的名字吗?是不是太啰嗦了?

最后,有没有比三元更简洁的语法?

因为 php7 有一个 null coalescing operator 可以将您的代码简化为:

$somePerson->id = $data ?? null;
// also works for arrays:
$somePerson->id = $data['id'] ?? null;