lsb_021.phpt 832 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  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. }
  27. }
  28. class C extends B {
  29. }
  30. C::testForward();
  31. C::testNoForward();
  32. ?>
  33. --EXPECT--
  34. C
  35. C
  36. C
  37. C
  38. C
  39. C
  40. A
  41. A
  42. A
  43. B
  44. B
  45. B