You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

60 lines
923 B

19 years ago
  1. --TEST--
  2. SPL: ArrayIterator and foreach reference
  3. --INI--
  4. allow_call_time_pass_reference=1
  5. --FILE--
  6. <?php
  7. echo "==Normal==\n";
  8. $arr = array(0=>0, 1=>1, 2=>2);
  9. $obj = new ArrayObject($arr);
  10. foreach($obj as $ak=>&$av) {
  11. foreach($obj as $bk=>&$bv) {
  12. if ($ak==0 && $bk==0) {
  13. $bv = "modify";
  14. }
  15. echo "$ak=>$av - $bk=>$bv\n";
  16. }
  17. }
  18. echo "==UseRef==\n";
  19. $arr = array(0=>0, 1=>1, 2=>2);
  20. $obj = new ArrayObject(&$arr);
  21. foreach($obj as $ak=>&$av) {
  22. foreach($obj as $bk=>&$bv) {
  23. if ($ak==0 && $bk==0) {
  24. $bv = "modify";
  25. }
  26. echo "$ak=>$av - $bk=>$bv\n";
  27. }
  28. }
  29. ?>
  30. ===DONE===
  31. <?php exit(0); ?>
  32. --EXPECTF--
  33. ==Normal==
  34. 0=>modify - 0=>modify
  35. 0=>modify - 1=>1
  36. 0=>modify - 2=>2
  37. 1=>1 - 0=>modify
  38. 1=>1 - 1=>1
  39. 1=>1 - 2=>2
  40. 2=>2 - 0=>modify
  41. 2=>2 - 1=>1
  42. 2=>2 - 2=>2
  43. ==UseRef==
  44. 0=>modify - 0=>modify
  45. 0=>modify - 1=>1
  46. 0=>modify - 2=>2
  47. 1=>1 - 0=>modify
  48. 1=>1 - 1=>1
  49. 1=>1 - 2=>2
  50. 2=>2 - 0=>modify
  51. 2=>2 - 1=>1
  52. 2=>2 - 2=>2
  53. ===DONE===