What are the advantages and disadvantages of using isset() versus array_key_exists() for checking array keys in PHP?

When checking for the existence of a key in an array in PHP, isset() is commonly used. However, isset() will return false if the key exists but its value is null. In such cases, array_key_exists() should be used as it specifically checks for the existence of the key regardless of its value. The disadvantage of using array_key_exists() is that it will return true even if the key exists but its value is null.

// Using isset() to check for key existence
if (isset($array['key'])) {
    // Key exists
} else {
    // Key does not exist
}

// Using array_key_exists() to check for key existence
if (array_key_exists('key', $array)) {
    // Key exists
} else {
    // Key does not exist
}