bug28442.phpt 982 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  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. --EXPECT--
  40. ===INIT===
  41. string(1) "A"
  42. string(1) "C"
  43. string(1) "C"
  44. ===SetA===
  45. string(2) "A2"
  46. string(1) "C"
  47. string(1) "C"
  48. ===SetB===
  49. string(2) "A2"
  50. string(2) "B2"
  51. string(2) "B2"
  52. ===SetC===
  53. string(2) "A2"
  54. string(2) "C2"
  55. string(2) "C2"