title: Precedence of __call over __callStatic
body: <p>I noticed that each of the examples below will echo <code>__call</code>.</p>
  
  <pre><code>class A {
      public function __construct() {
          $this-&gt;something();
          self::something();
          call_user_func(array("self", "something"));
          forward_static_call(array("self", "something"));
          A::something();
          call_user_func(array(__CLASS__, "something"));
          forward_static_call(array(__CLASS__, "something"));
      }
  
      public function __call($name, $arguments) {
          echo __FUNCTION__ . "&lt;br /&gt;";
      }
  
      public static function __callStatic($name, $arguments) {
          echo __FUNCTION__ . "&lt;br /&gt;";
      }
  
  }
  
  new A();
  </code></pre>
  
  <p>Is it possible to invoke the <code>__callStatic</code> method from inside object context, even when a <code>__call</code> magic method is present in the class?</p>
  
  <p>I find that <code>call_user_func(array(__CLASS__, "__callStatic"), array("method"), array());</code> is somewhat ugly.</p>