Yes, this is for speed. Yes, array_key_exists() would cover the case of null value, but it takes a bit more time compared to isset(). Ultimately which strategy is better depends on how many null values you have.