title: PHP static keyword in Amazon AWS SDK(Aws/Common/Credentials/Credentials.php) seems to be Object Initializer
body: <p>I don't understand what static() does here. Static can be used as Scope Definer. A function or a variable can be static. But what AWS is defining through new static() here? </p>
  
  <pre><code>   private static function createFromEnvironment($config)
       {
      // Get key and secret from ENV variables
      $envKey = self::getEnvVar(self::ENV_KEY);
      if (!($envSecret = self::getEnvVar(self::ENV_SECRET))) {
          // Use AWS_SECRET_ACCESS_KEY if AWS_SECRET_KEY was not set.
          $envSecret = self::getEnvVar(self::ENV_SECRET_ACCESS_KEY);
      }
  
      // Use credentials from the environment variables if available
      if ($envKey &amp;&amp; $envSecret) {
          return new static($envKey, $envSecret);
      }
  
      // Use credentials from the ini file in HOME directory if available
      $home = self::getHomeDir();
      if ($home &amp;&amp; file_exists("{$home}/.aws/credentials")) {
          return self::fromIni($config[Options::PROFILE], "{$home}/.aws/credentials");
      }
  
      // Use instance profile credentials (available on EC2 instances)
      return new RefreshableInstanceProfileCredentials(
  </code></pre>
  
  <blockquote>
    <p><strong>new static('', '', '', 1),</strong></p>
  </blockquote>
  
  <pre><code>        $config[Options::CREDENTIALS_CLIENT]
      );
     }
  </code></pre>