bug64555.phpt 741 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. --TEST--
  2. Bug #64555: Array key within interned string gets wrong hash value
  3. --FILE--
  4. <?php
  5. class Foo {
  6. protected $unsetme = 1;
  7. protected $keepme = 2;
  8. public function test() {
  9. $a = get_object_vars($this);
  10. foreach ($a as $k => $v) {
  11. if ($k == 'unsetme') {
  12. echo "Unsetting: $k\n";
  13. unset($a[$k]);
  14. } else if ($k == 'keepme') {
  15. echo "Changing: $k\n";
  16. $a[$k] = 42;
  17. $a['keepme'] = 43;
  18. }
  19. }
  20. var_dump($a, array_keys($a));
  21. }
  22. }
  23. $f = new Foo;
  24. $f->test();
  25. ?>
  26. --EXPECT--
  27. Unsetting: unsetme
  28. Changing: keepme
  29. array(1) {
  30. ["keepme"]=>
  31. int(43)
  32. }
  33. array(1) {
  34. [0]=>
  35. string(6) "keepme"
  36. }