抽象获取数组值,如果为空则为 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;
当未设置数组 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;