public static function has($name, $range = null)
    {
        static::_init();
        
        $range = $range ?: self::$range;
        
        $exists = isset(self::$data[$range][$name]) ? true : false;
        
        if (!$exists) {
            $names = explode('.', $name, 3);
            $count = count($names);
            if ($count >= 1) {
                $exists = array_key_exists($names[0], array_keys(self::$data[$range]));
                
                if ($count >= 2 && $exists) {
                    $exists = isset(self::$data[$range][$names[0]]) && array_key_exists($names[1], array_keys(self::$data[$range][$names[0]]));
                }
                
                if ($count >= 3 && $exists) {
                    $exists = isset(self::$data[$range][$names[0]][$names[1]]) && array_key_exists($names[2], array_keys(self::$data[$range][$names[0]][$names[1]]));
                }
            }
        }
        
        return $exists;
    }
public static function has($name, $range = null)
    {
        static::_init();
        
        $range = $range ?: self::$range;
        
        $exists = isset(self::$data[$range][$name]) ? true : false;
        
        if (!$exists) {
            $names = explode('.', $name, 3);
            $count = count($names);
            if ($count >= 1) {
                $exists = array_key_exists($names[0], array_keys(self::$data[$range]));
                
                if ($count >= 2 && $exists) {
                    $exists = isset(self::$data[$range][$names[0]]) && array_key_exists($names[1], array_keys(self::$data[$range][$names[0]]));
                }
                
                if ($count >= 3 && $exists) {
                    $exists = isset(self::$data[$range][$names[0]][$names[1]]) && array_key_exists($names[2], array_keys(self::$data[$range][$names[0]][$names[1]]));
                }
            }
        }
        
        return $exists;
    }
public static function has ( $ name , $ range = null ) { static :: _init ( ) ; $ range = $ range ? : self :: $ range ; $ exists = isset ( self :: $ data [ $ range ] [ $ name ] ) ? true : false ; if ( ! $ exists ) { $ names = explode ( '.' , $ name , 3 ) ; $ count = count ( $ names ) ; if ( $ count >= 1 ) { $ exists = array_key_exists ( $ names [ 0 ] , array_keys ( self :: $ data [ $ range ] ) ) ; if ( $ count >= 2 && $ exists ) { $ exists = isset ( self :: $ data [ $ range ] [ $ names [ 0 ] ] ) && array_key_exists ( $ names [ 1 ] , array_keys ( self :: $ data [ $ range ] [ $ names [ 0 ] ] ) ) ; } if ( $ count >= 3 && $ exists ) { $ exists = isset ( self :: $ data [ $ range ] [ $ names [ 0 ] ] [ $ names [ 1 ] ] ) && array_key_exists ( $ names [ 2 ] , array_keys ( self :: $ data [ $ range ] [ $ names [ 0 ] ] [ $ names [ 1 ] ] ) ) ; } } } return $ exists ; }
has some config
@param  string $name  support split by '.', example 'cache.storage'
@param  string $range
@return bool
has some config