original_string: public static function instance(array $values = [])
      {
          if (!self::$instance) {
              self::$instance = static::load($values);
          } elseif ($values) {
              $instance = self::$instance;
              foreach ($values as $key => $value) {
                  $instance->offsetSet($key, $value);
              }
          }
  
          return self::$instance;
      }
code: public static function instance(array $values = [])
      {
          if (!self::$instance) {
              self::$instance = static::load($values);
          } elseif ($values) {
              $instance = self::$instance;
              foreach ($values as $key => $value) {
                  $instance->offsetSet($key, $value);
              }
          }
  
          return self::$instance;
      }
code_tokens: public static function instance ( array $ values = [ ] ) { if ( ! self :: $ instance ) { self :: $ instance = static :: load ( $ values ) ; } elseif ( $ values ) { $ instance = self :: $ instance ; foreach ( $ values as $ key => $ value ) { $ instance -> offsetSet ( $ key , $ value ) ; } } return self :: $ instance ; }
docstring: Return the Grav instance. Create it if it's not already instanced
  
  @param array $values
  
  @return Grav
docstring_tokens: Return the Grav instance . Create it if it s not already instanced