php 在没有分组语句的if语句中执行isset

php perform isset in if statement without grouped statement

我有这个 if 语句

if ($something !== $array[$key]) {
    // do something
}

但我不能 100% 确定 $array[$key] 存在。 所以我想做这样的事情:

if ($something !== $array[$key] ?? null) {
    // do something
}

当数组键不存在或与变量不同时,if语句应该运行。 当然,我可以这样做:

if ($something !== (isset($array[$key]) ? $array[$key] : null)) {
    // do something
}

但我想避免这种情况,因为它会降低代码的可读性。除了这个还有其他选择吗:

$compare = $array[$key] ?? null;
if ($something !== $compare) {
    // do something
}

以下代码可能会有所帮助:

if (!array_key_exists($key, $array) || $array[$key] !== $something) {
   // Do it
}