Call static method from class inheriting Interface
<blockquote>
  <p><strong>Possible Duplicate:</strong><br>
  <a href="http://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>
