我有一个 setter,我需要从具有特定键的数组元素传递值。如果数组键不存在,则传递null如果元素值为空字符串,则传递''null如果值不为空字符串 - 传递值'string or int or ...'我拥有的是这个:$obj->setValue(isset($array['a']) ? (!empty(trim($array['a'])) ? $array['a'] : null ) : null );有些人会争辩说它很难读。那么-什么是“清洁”方式?
1 回答
红颜莎娜
TA贡献1842条经验 获得超12个赞
您可以将 null 合并运算符(捕获 null 和不存在的键)与空的三元运算符(捕获空值)链接在一起:
$obj->setValue($array['a'] ?? null ?: null);
例:
$array = [
'a' => 'foo',
'b' => '',
];
var_dump($array['a'] ?? null ?: null); // 'foo'
var_dump($array['b'] ?? null ?: null); // null
var_dump($array['c'] ?? null ?: null); // null
- 1 回答
- 0 关注
- 109 浏览
添加回答
举报
0/150
提交
取消