首页 > 解决方案 > 检查数组键是否存在且为空字符串的最佳方法

问题描述

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

我所拥有的是:

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

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

标签: php

解决方案


您可以将 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

推荐阅读