fork download
  1. <?php
  2. class A {
  3. public static $foo = null;
  4.  
  5. public function getClass() { return __CLASS__; }
  6.  
  7. public static function printFoo() {
  8. static::guessFoo();
  9. print "Class: " . static::getClass() . ' says: ';
  10. print static::$foo . "\n";
  11. }
  12.  
  13. public static function guessFoo() {
  14. if(!static::$foo) {
  15. static::$foo = ' I am ' . static::getClass();
  16. }
  17. }
  18. }
  19.  
  20. class B extends A {
  21. public function getClass() { return __CLASS__; }
  22. }
  23.  
  24. class C extends A {
  25. public function getClass() { return __CLASS__; }
  26. }
  27.  
  28.  
  29. A::printFoo();
  30. B::printFoo();
  31. C::printFoo();
  32.  
Success #stdin #stdout 0.01s 20568KB
stdin
Standard input is empty
stdout
Class: A says:  I am A
Class: B says:  I am A
Class: C says:  I am A