检查数组键是否存在且是否为空字符串的最佳方法

我有一个 setter,我需要从具有特定键的数组元素传递值。

  • 如果数组键不存在,则传递null

  • 如果元素值为空字符串,则传递''null

  • 如果值不为空字符串 - 传递值'string or int or ...'

我拥有的是这个:

$obj->setValue(isset($array['a']) ? (!empty(trim($array['a'])) ? $array['a'] : null ) : null );

有些人会争辩说它很难读。那么-什么是“清洁”方式?


汪汪一只猫
浏览 110回答 1
1回答

红颜莎娜

您可以将 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); // nullvar_dump($array['c'] ?? null ?: null); // null
打开App,查看更多内容
随时随地看视频慕课网APP