我有以下数组:
$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/