php - 如果键不存在/不真实,则通过键或假值从数组中获取值

标签 php arrays

我有以下数组:

$a = array('a' => 1,'b' => 2,'c' => null);

我想找到一种方法来访问给定键的元素值,如果该键不存在,则获取错误值。

在上面的示例中,我希望 $a['d'] 给我一个错误值。 (类似于 JavaScript:({}).b//-> undefined)。

我怎样才能做到这一点?

编辑:在我的具体情况下,我不在乎例如是否$a['c'] => false

最佳答案

在 PHP 7.0 及更高版本中,您可以使用空合并运算符:

$d = $a['d'] ?? false;

在 PHP 5.3 及更高版本中,您可以使用三元语句:

$d = isset($a['d']) ? $a['d'] : false;

在 PHP7.0.20 中测试如下

PHP 脚本

$a = array('a' => 1,'b' => 2,'c' => 3);

$b1 = $a['b'] ?? false;
$b2 = isset($a['b']) ? $a['b'] : false;
$b3 = $a['b'] ?: false;

$d1 = $a['d'] ?? false;
$d2 = isset($a['d']) ? $a['d'] : false;
// Undefined Error
// $d3 = $a['d'] ?: false;

var_dump([
    'b1' => $b1,
    'b2' => $b2,
    'b3' => $b3,
    'd1' => $d1,
    'd2' => $d2,
    // 'd3' => $d3
]);

控制台输出

| => php test.php
    array(5) {
        ["b1"]=>int(2)
        ["b2"]=>int(2)
        ["b3"]=>int(2)
        ["d1"]=>bool(false)
        ["d2"]=>bool(false)
    }

有关引用,请参阅:

关于php - 如果键不存在/不真实,则通过键或假值从数组中获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45616526/

相关文章:

javascript - 3 变量序列和

javascript - 我不明白这段 JS 代码是如何工作的;这两行是如何返回的?

php - 使用php获取字符串中的所有url

javascript - 用正则表达式剥离CSS?

c - 使用指针 C 访问数组中的特定元素

java - CipherOutputStream 无法写入 ByteArrayOutputStream

c++ - 如何使用 const 成员变量设置数组大小?

php - 来自 CognitoIdentityProviderClient::adminCreateUser() 的 MissingAuthenticationTokenException ("Missing Authentication Token")

php - 在 PHP 中连接到数据库

php - PDO 更新多条记录