Avatar ·

Qual a diferença entre isset() e array_key_exists() em PHP? Quando usar cada um?

Olá a todos! Comecei a estudar PHP e me deparei com uma situação confusa. Tenho um array com dados de usuário: ```php $user = [ 'name' => 'Иван', 'email' => 'ivan@example.com', 'age' => null, 'status' => '' ]; ``` Preciso verificar se a key `age` existe no array. Tentei duas formas: ```php if (isset($user['age'])) { echo "Idade informada"; } if (array_key_exists('age', $user)) { echo "A key age existe"; } ``` A primeira forma (`isset`) não exibe mensagem, embora a key `age` esteja claramente no array. Já `array_key_exists` funciona e exibe "A key age existe". Estou confuso: ambas parecem verificar a existência da key? Por que resultados diferentes? E para a key `status` com string vazia, `isset` também retorna `false`, mesmo a key existindo. Por favor, expliquem para um iniciante: qual a diferença entre `isset()` e `array_key_exists()`, e quando é mais correto usar cada um? Talvez haja outras nuances de performance?