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?