title: Call static method from class inheriting Interface
body: <blockquote>
    <p><strong>Possible Duplicate:</strong><br>
    <a href="https://stackoverflow.com/questions/4828980/referring-to-a-static-member-of-a-subclass">Referring to a static member of a subclass</a>  </p>
  </blockquote>
  
  
  
  <p>Please have a look at the following code to understand my problem.</p>
  
  <pre><code>&lt;?php
  
  Interface IDoesSomething
  {
      public static function returnSomething();
  }
  
  abstract class MiddleManClass implements IDoesSomething
  {
      public static function doSomething()
      {
          return 1337 * self::returnSomething();
      }
  }
  
  class SomeClass extends MiddleManClass
  {
      public static function returnSomething()
      {
          return 999;
      }
  }
  
  // and now, the vicious call
  $foo = SomeClass::doSomething();
  
  /**
   * results in a
   * PHP Fatal error:  Cannot call abstract method IDoesSomething::returnSomething()
   */
  ?&gt;
  </code></pre>
  
  <p>Is there a way to force abstraction of <code>returnSomething()</code> while maintaining the possibility to call the function from a function defined in an abstract "middleman" class? Looks like a bottleneck of PHP to me.</p>