lsb_021.phpt 970 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. --TEST--
  2. ZE2 Late Static Binding parent::/self:: forwarding while classname doesn't
  3. --FILE--
  4. <?php
  5. class A {
  6. public static function test() {
  7. echo get_called_class()."\n";
  8. }
  9. }
  10. class B extends A {
  11. public static function testForward() {
  12. parent::test();
  13. call_user_func("parent::test");
  14. call_user_func(array("parent", "test"));
  15. self::test();
  16. call_user_func("self::test");
  17. call_user_func(array("self", "test"));
  18. }
  19. public static function testNoForward() {
  20. A::test();
  21. call_user_func("A::test");
  22. call_user_func(array("A", "test"));
  23. B::test();
  24. call_user_func("B::test");
  25. call_user_func(array("B", "test"));
  26. (self::class)::test();
  27. call_user_func(self::class . "::test");
  28. call_user_func(array(self::class, "test"));
  29. }
  30. }
  31. class C extends B {
  32. }
  33. C::testForward();
  34. C::testNoForward();
  35. ?>
  36. --EXPECT--
  37. C
  38. C
  39. C
  40. C
  41. C
  42. C
  43. A
  44. A
  45. A
  46. B
  47. B
  48. B
  49. B
  50. B
  51. B