En php hay una función que se llama isset que te dice si la variable que se le pasa por parámetro está definida. Si la variable está definida devuelve TRUE y si no está definida devuelve FALSE. El problema está cuando hay una variable que está definida y su valor es NULL. En este caso isset devolverá FALSE y esp no es correcto.
Para evitar errores de este tipo existe la función get_defined_vars. Veámoslo en un ejemplo:
$mi_variable = NULL;
if (isset($$mi_variabl)) // devuelve false
$mi_variable = NULL;
$mis_variables = get_defined_vars();
if (array_key_exists('mi_variable', $mis_variables)) // devuelve True