我有这个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
}
答案 0 :(得分:2)
以下代码可能有所帮助:
if (!array_key_exists($key, $array) || $array[$key] !== $something) {
// Do it
}
答案 1 :(得分:0)
如果您不确定数组本身是否存在或密钥是否存在,则此代码将有所帮助。我为特定情况做了这个,虽然OP可能不希望我分享的上层,以防将来有人从中受益。
if ( is_array( $array ) ) // Check if this array exists
{
if ( array_key_exists( $key , $array ) ) // Check if this key exists
{
if ( $something !== $compare ) // Your condition
{
// do something
}
}
}