Php 抽象获取数组值或null(如果为空)

Php 抽象获取数组值或null(如果为空),php,arrays,design-patterns,null,abstraction,Php,Arrays,Design Patterns,Null,Abstraction,当未设置数组键/索引时,我通常需要NULL,因此我正在考虑提取isset(…)?:编码为一个函数,如: 函数值或完整($array,$key){ 返回isset($array[$key]) ?$array[$key]:空; } 那么我就称之为: $somePerson->id=valueOrNull($data,'id'); 然后,$somePerson->id将是NULL,在$\u POST请求创建一个新的人的情况下,而从数据库加载时,它将id作为int 这是个好主意吗?我是不是太懒了?

当未设置数组键/索引时,我通常需要
NULL
,因此我正在考虑提取
isset(…)?:编码为一个函数,如:

函数值或完整($array,$key){
返回isset($array[$key])
?$array[$key]:空;
}
那么我就称之为:

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

然后,
$somePerson->id
将是
NULL
,在
$\u POST
请求创建一个新的人的情况下,而从数据库加载时,它将id作为int

这是个好主意吗?我是不是太懒了?我只是讨厌键入
$array['key']
,所以键入两次就特别烦人了

那么命名
valueOrNull
呢?这个名字够清楚吗?是不是太冗长了

最后,还有比三元语法更简洁的语法吗

自php7以来,您的代码可以简化为:

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

赫金:是的!谢谢我一两个月前见过一次,我想。。。我想我可能没读过或者忘了。比isset三元组好得多,而且不需要抽象为函数。