Annotation of embedaddon/php/ext/standard/tests/array/array_splice_variation1.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Test array_splice() function : usage variations - references
! 3: --FILE--
! 4: <?php
! 5: /*
! 6: * proto array array_splice(array input, int offset [, int length [, array replacement]])
! 7: * Function is implemented in ext/standard/array.c
! 8: */
! 9:
! 10:
! 11: echo "test behaviour when input array is in a reference set\n";
! 12:
! 13: $input_array=array (array(1,2));
! 14: $input_array[]=&$input_array[0];
! 15: var_dump (array_splice ($input_array[0],1,1));
! 16: var_dump ($input_array);
! 17:
! 18: echo "Test behaviour of input arrays containing references \n";
! 19: /*
! 20: * There are three regions to test:, before cut, the cut and after the cut.
! 21: * For reach we check a plain value, a reference value with integer key and a
! 22: * reference value with a string key.
! 23: */
! 24: $numbers=array(0,1,2,3,4,5,6,7,8,9,10,11,12);
! 25: $input_array=array(0,1,&$numbers[2],"three"=>&$numbers[3],4,&$numbers[5],"six"=>&$numbers[6],7,&$numbers[8],"nine"=>&$numbers[9]);
! 26: var_dump (array_splice ($input_array,4,3));
! 27: var_dump ($input_array);
! 28:
! 29: echo "Test behaviour of replacement array containing references \n";
! 30:
! 31: $three=3;
! 32: $four=4;
! 33: $input_array=array (0,1,2);
! 34: $b=array(&$three,"fourkey"=>&$four);
! 35: array_splice ($input_array,-1,1,$b);
! 36: var_dump ($input_array);
! 37:
! 38: echo "Test behaviour of replacement which is part of reference set \n";
! 39:
! 40: $int=3;
! 41: $input_array=array (1,2);
! 42: $b=&$int;
! 43:
! 44: array_splice ($input_array,-1,1,$b);
! 45: var_dump ($input_array);
! 46: echo "Done\n";
! 47: ?>
! 48: --EXPECT--
! 49: test behaviour when input array is in a reference set
! 50: array(1) {
! 51: [0]=>
! 52: int(2)
! 53: }
! 54: array(2) {
! 55: [0]=>
! 56: &array(1) {
! 57: [0]=>
! 58: int(1)
! 59: }
! 60: [1]=>
! 61: &array(1) {
! 62: [0]=>
! 63: int(1)
! 64: }
! 65: }
! 66: Test behaviour of input arrays containing references
! 67: array(3) {
! 68: [0]=>
! 69: int(4)
! 70: [1]=>
! 71: &int(5)
! 72: ["six"]=>
! 73: &int(6)
! 74: }
! 75: array(7) {
! 76: [0]=>
! 77: int(0)
! 78: [1]=>
! 79: int(1)
! 80: [2]=>
! 81: &int(2)
! 82: ["three"]=>
! 83: &int(3)
! 84: [3]=>
! 85: int(7)
! 86: [4]=>
! 87: &int(8)
! 88: ["nine"]=>
! 89: &int(9)
! 90: }
! 91: Test behaviour of replacement array containing references
! 92: array(4) {
! 93: [0]=>
! 94: int(0)
! 95: [1]=>
! 96: int(1)
! 97: [2]=>
! 98: &int(3)
! 99: [3]=>
! 100: &int(4)
! 101: }
! 102: Test behaviour of replacement which is part of reference set
! 103: array(2) {
! 104: [0]=>
! 105: int(1)
! 106: [1]=>
! 107: int(3)
! 108: }
! 109: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>