title: Forwarding and non-forwarding calls in late static binding (PHP 5.3)
body: <pre class="lang-php prettyprint-override"><code>&lt;?php
  class A {
      public static function foo() {
          static::who();
      }
  
      public static function who() {
          echo __CLASS__."\n";
      }
  }
  
  class B extends A {
      public static function test() {
          A::foo();
          parent::foo();
          self::foo();
      }
  
      public static function who() {
          echo __CLASS__."\n";
      }
  }
  class C extends B {
      public static function who() {
          echo __CLASS__."\n";
      }
  }
  
  C::test();
  ?&gt; 
  </code></pre>
  
  <p>given below is the output:</p>
  
  <pre><code>A
  C
  C
  </code></pre>
  
  <p>can anyone evaluate tell how that output has been produced? </p>