Creating Variables from Array Keys in PHP (with more control)

This function is a little more enhanced version of my previous post on the same topic. In this function, what extra you can de is define the default value in the variables array in case of non existance of variable in the parent array. Previously the default value was NULL.

function better_array_to_variables( $array = array() , $variable_list = array() )
{
 if( empty( $array ) OR empty( $variable_list ) )
 {
  return false;
 }
 
 if( !is_array( $variable_list ) OR !is_array( $array ) )
 {
  return false;
 }
 
 if( !count( $variable_list ) OR !count( $array ) )
 {
  return false;
 }
 
 foreach( $variable_list as $key => $value )
 {
  if( !ctype_digit( ( string ) $key ) )
  {
   $name  = $key;
   $default = $value;
  }
  else
  {
   $name  = $value;
   $default = NULL;
  }
  
  if( preg_match( "/^[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/" , $name ) )
  {
   GLOBAL $$name;
   if( isset( $array[$name] ) )
   {
    $$name = $array[$name];
   }
   else
   {
    $$name = $default;
   }
  }
 }
}

better_array_to_variables( array( 'hamdusa' => '1' , 'Adlusa' => '2'  ) , array( 'hamdusa' , 'adlusa' => false , 'mudassar' => 'inexists' ) );

var_dump( $hamdusa );
var_dump( $adlusa );
var_dump( $mudassar );