<?php
class A {
  public static $foo = null;

  public function getClass() { return __CLASS__; }

    public static function printFoo() {
      static::guessFoo();
      print "Class: " . static::getClass() . ' says: ';
      print static::$foo . "\n";
    }

  public static function guessFoo() {
    if(!static::$foo) {
      static::$foo = ' I am ' . static::getClass();
    }
  }
}

class B extends A {
  public function getClass() { return __CLASS__; }
}

class C extends A {
  public function getClass() { return __CLASS__; }
}


A::printFoo();
B::printFoo();
C::printFoo();
