current_variation4.phpt 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. --TEST--
  2. Test current() function : usage variations - multi-dimensional arrays
  3. --FILE--
  4. <?php
  5. /*
  6. * Test how current() behaves with muti-dimensional and recursive arrays
  7. */
  8. echo "*** Testing current() : usage variations ***\n";
  9. echo "\n-- Two Dimensional Array --\n";
  10. $multi_array = array ('zero', array (1, 2, 3), 'two');
  11. echo "Initial Position: ";
  12. var_dump(current($multi_array));
  13. echo "Next Position: ";
  14. next($multi_array);
  15. var_dump(current($multi_array));
  16. echo "End Position: ";
  17. end($multi_array);
  18. var_dump(current($multi_array));
  19. echo "\n-- Access an Array Within an Array --\n";
  20. //accessing an array within an array
  21. echo "Initial Position: ";
  22. var_dump(current($multi_array[1]));
  23. echo "\n-- Recursive, Multidimensional Array --\n";
  24. //create a recursive array
  25. $multi_array[] = &$multi_array;
  26. //See where internal pointer is after adding more elements
  27. echo "Current Position: ";
  28. var_dump(current($multi_array));
  29. //see if internal pointer is in same position as referenced array
  30. var_dump(current($multi_array[3][3][3]));
  31. // see if internal pointer is in the same position from when accessing this inner array
  32. var_dump(current($multi_array[3][3][3][1]));
  33. ?>
  34. --EXPECT--
  35. *** Testing current() : usage variations ***
  36. -- Two Dimensional Array --
  37. Initial Position: string(4) "zero"
  38. Next Position: array(3) {
  39. [0]=>
  40. int(1)
  41. [1]=>
  42. int(2)
  43. [2]=>
  44. int(3)
  45. }
  46. End Position: string(3) "two"
  47. -- Access an Array Within an Array --
  48. Initial Position: int(1)
  49. -- Recursive, Multidimensional Array --
  50. Current Position: string(3) "two"
  51. string(3) "two"
  52. int(1)