bug28442.phpt 1004 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. --TEST--
  2. Bug #28442 (Changing a static variables in a class changes it across sub/super classes.)
  3. --FILE--
  4. <?php
  5. class ClassA
  6. {
  7. static $prop;
  8. }
  9. class ClassB extends ClassA
  10. {
  11. static $prop;
  12. }
  13. class ClassC extends ClassB
  14. {
  15. }
  16. echo "===INIT===\n";
  17. ClassA::$prop = 'A';
  18. ClassB::$prop = 'B';
  19. ClassC::$prop = 'C';
  20. var_dump(ClassA::$prop);
  21. var_dump(ClassB::$prop);
  22. var_dump(ClassC::$prop);
  23. echo "===SetA===\n";
  24. ClassA::$prop = 'A2';
  25. var_dump(ClassA::$prop);
  26. var_dump(ClassB::$prop);
  27. var_dump(ClassC::$prop);
  28. echo "===SetB===\n";
  29. ClassB::$prop = 'B2';
  30. var_dump(ClassA::$prop);
  31. var_dump(ClassB::$prop);
  32. var_dump(ClassC::$prop);
  33. echo "===SetC===\n";
  34. ClassC::$prop = 'C2';
  35. var_dump(ClassA::$prop);
  36. var_dump(ClassB::$prop);
  37. var_dump(ClassC::$prop);
  38. ?>
  39. ===DONE===
  40. --EXPECT--
  41. ===INIT===
  42. string(1) "A"
  43. string(1) "C"
  44. string(1) "C"
  45. ===SetA===
  46. string(2) "A2"
  47. string(1) "C"
  48. string(1) "C"
  49. ===SetB===
  50. string(2) "A2"
  51. string(2) "B2"
  52. string(2) "B2"
  53. ===SetC===
  54. string(2) "A2"
  55. string(2) "C2"
  56. string(2) "C2"
  57. ===DONE===