lsb_019.phpt 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. --TEST--
  2. ZE2 Late Static Binding properties and methods declared as protected and overridden as public.
  3. --FILE--
  4. <?php
  5. class TestClass {
  6. protected static $staticVar;
  7. protected static function staticFunction() {
  8. return 'TestClassFunction';
  9. }
  10. public static function testStaticVar() {
  11. TestClass::$staticVar = 'TestClassStatic';
  12. ChildClass1::$staticVar = 'ChildClassStatic';
  13. return static::$staticVar;
  14. }
  15. public static function testStaticFunction() {
  16. return static::staticFunction();
  17. }
  18. }
  19. class ChildClass1 extends TestClass {
  20. public static $staticVar;
  21. public static function staticFunction() {
  22. return 'ChildClassFunction';
  23. }
  24. }
  25. class ChildClass2 extends TestClass {}
  26. echo TestClass::testStaticVar() . "\n";
  27. echo TestClass::testStaticFunction() . "\n";
  28. echo ChildClass1::testStaticVar() . "\n";
  29. echo ChildClass1::testStaticFunction() . "\n";
  30. echo ChildClass2::testStaticVar() . "\n";
  31. echo ChildClass2::testStaticFunction() . "\n";
  32. ?>
  33. --EXPECT--
  34. TestClassStatic
  35. TestClassFunction
  36. ChildClassStatic
  37. ChildClassFunction
  38. TestClassStatic
  39. TestClassFunction