php - 检查数组键是否存在且为空字符串的最佳方法
问题描述
我有一个设置器,我需要在其中使用特定键从数组元素中传递一个值。
- 如果数组键不存在通过
null
- 如果元素值为空字符串,则
''
通过null
- 如果值不是空字符串
'string or int or ...'
- 传递值
我所拥有的是:
$obj->setValue(isset($array['a']) ? (!empty(trim($array['a'])) ? $array['a'] : null ) : 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
推荐阅读
- android - USB 通信 Android 手机到 Android Things
- google-cloud-platform - 我可以使用来自谷歌云构建的 docker 镜像注册表吗?
- ios - 我如何使用 IBAction 按钮使用 Swift 转到下一个故事板?
- ruby-on-rails - Rails、强参数和复杂的数据结构
- wordpress - 是否可以以编程方式更新 ACF Wysiwyg 字段?
- mysql - 比较mysql中unix时间戳中的两个日期
- r - 计算R中数据框中每个唯一行的数量
- javascript - 检查变量的长度时,Javascript“无法读取未定义的属性'长度'”
- salesforce - Mulesoft 对 Salesforce 登录的 HTTP 请求返回 org.glassfish.grizzly.utils.BufferInputStream
- kotlin - kotlin子类的构造函数中的更多参数