Annotation of embedaddon/php/ext/standard/tests/array/current_variation4.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Test current() function : usage variations - multi-dimensional arrays
! 3: --FILE--
! 4: <?php
! 5: /* Prototype : mixed current(array $array_arg)
! 6: * Description: Return the element currently pointed to by the internal array pointer
! 7: * Source code: ext/standard/array.c
! 8: * Alias to functions: pos
! 9: */
! 10:
! 11: /*
! 12: * Test how current() behaves with muti-dimensional and recursive arrays
! 13: */
! 14:
! 15: echo "*** Testing current() : usage variations ***\n";
! 16:
! 17: echo "\n-- Two Dimensional Array --\n";
! 18: $multi_array = array ('zero', array (1, 2, 3), 'two');
! 19: echo "Initial Position: ";
! 20: var_dump(current($multi_array));
! 21:
! 22: echo "Next Position: ";
! 23: next($multi_array);
! 24: var_dump(current($multi_array));
! 25:
! 26: echo "End Position: ";
! 27: end($multi_array);
! 28: var_dump(current($multi_array));
! 29:
! 30: echo "\n-- Access an Array Within an Array --\n";
! 31: //accessing an array within an array
! 32: echo "Initial Position: ";
! 33: var_dump(current($multi_array[1]));
! 34:
! 35: echo "\n-- Recursive, Multidimensional Array --\n";
! 36: //create a recursive array
! 37: $multi_array[] = &$multi_array;
! 38:
! 39: //See where internal pointer is after adding more elements
! 40: echo "Current Position: ";
! 41: var_dump(current($multi_array));
! 42:
! 43: //see if internal pointer is in same position as referenced array
! 44: var_dump(current($multi_array[3][3][3]));
! 45: // see if internal pointer is in the same position from when accessing this inner array
! 46: var_dump(current($multi_array[3][3][3][1]));
! 47: ?>
! 48: ===DONE===
! 49: --EXPECTF--
! 50: *** Testing current() : usage variations ***
! 51:
! 52: -- Two Dimensional Array --
! 53: Initial Position: string(4) "zero"
! 54: Next Position: array(3) {
! 55: [0]=>
! 56: int(1)
! 57: [1]=>
! 58: int(2)
! 59: [2]=>
! 60: int(3)
! 61: }
! 62: End Position: string(3) "two"
! 63:
! 64: -- Access an Array Within an Array --
! 65: Initial Position: int(1)
! 66:
! 67: -- Recursive, Multidimensional Array --
! 68: Current Position: string(3) "two"
! 69: string(3) "two"
! 70: int(1)
! 71: ===DONE===
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>