我有一个设置器,我需要在其中使用特定键从数组元素中传递一个值。如果数组键不存在通过null如果元素值为空字符串,则''通过null如果值不是空字符串'string or int or ...'- 传递值我所拥有的是:$obj->setValue(isset($array['a']) ? (!empty(trim($array['a'])) ? $array['a'] : null ) : null );有些人会争辩说它很难阅读。那么 - 什么是“干净”的方式?
1 回答

侃侃无极
TA贡献2051条经验 获得超10个赞
您可以将 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 关注
- 168 浏览
添加回答
举报
0/150
提交
取消