猿问

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

我有一个设置器,我需要在其中使用特定键从数组元素中传递一个值。

  • 如果数组键不存在通过null

  • 如果元素值为空字符串,则''通过null

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

我所拥有的是:

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

有些人会争辩说它很难阅读。那么 - 什么是“干净”的方式?


江户川乱折腾
浏览 169回答 1
1回答

侃侃无极

您可以将 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
我要回答