031.phpt 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. --TEST--
  2. Bug #16227 (Internal hash position bug on assignment)
  3. --FILE--
  4. <?php
  5. // reported by php.net@alienbill.com
  6. $arrayOuter = array("key1","key2");
  7. $arrayInner = array("0","1");
  8. print "Correct - with inner loop reset.\n";
  9. while(list(,$o) = each($arrayOuter)){
  10. reset($arrayInner);
  11. while(list(,$i) = each($arrayInner)){
  12. print "inloop $i for $o\n";
  13. }
  14. }
  15. reset($arrayOuter);
  16. reset($arrayInner);
  17. print "What happens without inner loop reset.\n";
  18. while(list(,$o) = each($arrayOuter)){
  19. while(list(,$i) = each($arrayInner)){
  20. print "inloop $i for $o\n";
  21. }
  22. }
  23. reset($arrayOuter);
  24. reset($arrayInner);
  25. print "What happens without inner loop reset but copy.\n";
  26. while(list(,$o) = each($arrayOuter)){
  27. $placeholder = $arrayInner;
  28. while(list(,$i) = each($arrayInner)){
  29. print "inloop $i for $o\n";
  30. }
  31. }
  32. reset($arrayOuter);
  33. reset($arrayInner);
  34. print "What happens with inner loop reset over copy.\n";
  35. while(list(,$o) = each($arrayOuter)){
  36. $placeholder = $arrayInner;
  37. while(list(,$i) = each($placeholder)){
  38. print "inloop $i for $o\n";
  39. }
  40. }
  41. reset($arrayOuter);
  42. reset($arrayInner);
  43. ?>
  44. --EXPECTF--
  45. Correct - with inner loop reset.
  46. Deprecated: The each() function is deprecated. This message will be suppressed on further calls in %s on line %d
  47. inloop 0 for key1
  48. inloop 1 for key1
  49. inloop 0 for key2
  50. inloop 1 for key2
  51. What happens without inner loop reset.
  52. inloop 0 for key1
  53. inloop 1 for key1
  54. What happens without inner loop reset but copy.
  55. inloop 0 for key1
  56. inloop 1 for key1
  57. inloop 0 for key2
  58. inloop 1 for key2
  59. What happens with inner loop reset over copy.
  60. inloop 0 for key1
  61. inloop 1 for key1
  62. inloop 0 for key2
  63. inloop 1 for key2