我有一個 setter,我需要從具有特定鍵的數組元素傳遞值。如果數組鍵不存在,則傳遞null如果元素值為空字符串,則傳遞''null如果值不為空字符串 - 傳遞值'string or int or ...'我擁有的是這個:$obj->setValue(isset($array['a']) ? (!empty(trim($array['a'])) ? $array['a'] : null ) : null );有些人會爭辯說它很難讀。那么-什么是“清潔”方式?
1 回答

紅顏莎娜
TA貢獻1842條經驗 獲得超13個贊
您可以將 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 關注
- 128 瀏覽
添加回答
舉報
0/150
提交
取消