title: Returning value of a static methods
body: <p>When I run this code </p>
  
  <pre><code>class Kernel
  {
      private $settings = array();
  
      public function handle(Settings $conf)
      {
          $this-&gt;settings = $conf;
          return $this;
      }
  
  
      public function run()
      {
          var_dump($this-&gt;settings);
      }
  }
  
  
  class Settings
  {
      public static function appConfig()
      {
          return array(
              'database' =&gt; array(
                  'hostname' =&gt; 'localhost',
                  'username' =&gt; 'root',
                  'password' =&gt; 'test',
                  'database' =&gt; 'testdb'
              )
          );
      }
  }
  
  $kernel = new Kernel;
  $kernel-&gt;handle(Settings::appConfig())-&gt;run();
  </code></pre>
  
  <p>I get error </p>
  
  <pre><code>Catchable fatal error: Argument 1 passed to Kernel::handle() must be an instance of Settings, array given, called in....
  </code></pre>
  
  <p>Does it mean that type hinting works only for instances but not for static methods? If now how to achieve type hinting for static methods?</p>