Работает:
// это массив?
// в этом массиве есть ключ "my_key"?
if ( is_array( $value ) && isset( $value["my_key"] ) ) print "в этом массиве есть ключ my_key";
Не работает:
*теперь переписываем это условие, через охранные выражения
// это не массив? - переходим к следующей итерации
if ( ! is_array( $value ) ) continue;
// первое охранное выражение прошли - значит это массив
// в этом массиве нет ключа "my_key"? - переходим к следующей итерации
if ( ! array_key_exists( "my_key", $value ) ) continue;
// прошли оба охранных выражения - значит это массив и в нем есть ключ "my_key"
print "в этом массиве есть ключ my_key";
Объясните, пожалуйста, почему не работает?