Avatar ·

¿Cuál es la diferencia entre isset() y array_key_exists() en PHP? ¿Cuándo usar cada uno?

¡Hola a todos! Acabo de empezar a aprender PHP y me encontré con una situación confusa. Tengo un array con datos de usuario: ```php $user = [ 'name' => 'Иван', 'email' => 'ivan@example.com', 'age' => null, 'status' => '' ]; ``` Necesito verificar si la clave `age` existe en el array. Probé dos formas: ```php if (isset($user['age'])) { echo "Edad especificada"; } if (array_key_exists('age', $user)) { echo "La clave age existe"; } ``` La primera forma (`isset`) no muestra el mensaje, aunque la clave `age` está claramente en el array. Pero `array_key_exists` funciona y muestra "La clave age existe". Estoy confundido: ¿ambos verifican la existencia de la clave? ¿Por qué resultados diferentes? Y para la clave `status` con cadena vacía, `isset` también devuelve `false`, aunque la clave existe. Por favor, explíquenme a un principiante: ¿cuál es la diferencia entre `isset()` y `array_key_exists()`, y cuándo es mejor usar cada opción? ¿Quizás hay otros matices con el rendimiento?