Annotation of embedaddon/php/ext/standard/tests/array/array_splice_variation1.phpt, revision 1.1.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>