title: Call __call instead of __callstatic in same class, not if call another class
body: <p>I have a question about a strange comportement.</p>
  
  <p>Look at this code :</p>
  
  <pre><code>class User
  {
      public function can($name) {
          return call_user_func(array($name, 'test'));
      }
  
      public static function __callStatic($name, $args) {
          return 'User::__callStatic';
      }
  
      public function __call($name, $args) {
          return 'User::__call';
      }
  }
  
  class Foo
  {
      public static function __callStatic($name, $args) {
          return 'Foo::__callStatic';
      }
  
      public function __call($name, $args) {
          return 'Foo::__call?';
      }
  }
  
  $u = new User();
  var_dump($u-&gt;can('User'));
  var_dump($u-&gt;can('Foo'));
  </code></pre>
  
  <p>The results of the first var dump is :
     "User::__call"
  And the second :
     "Foo::__callStatic"</p>
  
  <p>Why the first one don't call the function __callStatic ?</p>
  
  <p>PS : I look at other topics, but not found an explaination.</p>
  
  <p>Thanks</p>