Return to array_slice_variation3.phpt CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / ext / standard / tests / array |
1.1 misho 1: --TEST-- 2: Test array_slice() function : usage variations - Pass different data types as $length arg 3: --SKIPIF-- 4: <?php if (PHP_INT_SIZE != 8) die("skip this test is for 64bit platform only"); ?> 5: --FILE-- 6: <?php 7: /* Prototype : array array_slice(array $input, int $offset [, int $length [, bool $preserve_keys]]) 8: * Description: Returns elements specified by offset and length 9: * Source code: ext/standard/array.c 10: */ 11: 12: /* 13: * Pass different data types as $length argument to array_slice to test behaviour 14: */ 15: 16: echo "*** Testing array_slice() : usage variations ***\n"; 17: 18: // Initialise function arguments not being substituted 19: $input_array = array('one' => 1, 2, 'three' => 3, 4); 20: $offset = 2; 21: 22: //get an unset variable 23: $unset_var = 10; 24: unset ($unset_var); 25: 26: // heredoc string 27: $heredoc = <<<EOT 28: hello world 29: EOT; 30: 31: // unexpected values to be passed to $length argument 32: $inputs = array( 33: 34: // int data 35: /*1*/ 0, 36: 1, 37: 12345, 38: -2345, 39: 40: // float data 41: /*5*/ 10.5, 42: -10.5, 43: 12.3456789000e10, 44: 12.3456789000E-10, 45: .5, 46: 47: // null data 48: /*10*/ NULL, 49: null, 50: 51: // boolean data 52: /*12*/ true, 53: false, 54: TRUE, 55: FALSE, 56: 57: // empty data 58: /*16*/ "", 59: '', 60: array(), 61: 62: // string data 63: /*19*/ "string", 64: 'string', 65: $heredoc, 66: 67: // undefined data 68: /*22*/ @$undefined_var, 69: 70: // unset data 71: /*23*/ @$unset_var, 72: ); 73: 74: // loop through each element of $inputs to check the behavior of array_slice 75: $iterator = 1; 76: foreach($inputs as $input) { 77: echo "\n-- Iteration $iterator --\n"; 78: var_dump( array_slice($input_array, $offset, $input) ); 79: $iterator++; 80: }; 81: 82: echo "Done"; 83: ?> 84: 85: --EXPECTF-- 86: *** Testing array_slice() : usage variations *** 87: 88: -- Iteration 1 -- 89: array(0) { 90: } 91: 92: -- Iteration 2 -- 93: array(1) { 94: ["three"]=> 95: int(3) 96: } 97: 98: -- Iteration 3 -- 99: array(2) { 100: ["three"]=> 101: int(3) 102: [0]=> 103: int(4) 104: } 105: 106: -- Iteration 4 -- 107: array(0) { 108: } 109: 110: -- Iteration 5 -- 111: array(2) { 112: ["three"]=> 113: int(3) 114: [0]=> 115: int(4) 116: } 117: 118: -- Iteration 6 -- 119: array(0) { 120: } 121: 122: -- Iteration 7 -- 123: array(2) { 124: ["three"]=> 125: int(3) 126: [0]=> 127: int(4) 128: } 129: 130: -- Iteration 8 -- 131: array(0) { 132: } 133: 134: -- Iteration 9 -- 135: array(0) { 136: } 137: 138: -- Iteration 10 -- 139: array(2) { 140: ["three"]=> 141: int(3) 142: [0]=> 143: int(4) 144: } 145: 146: -- Iteration 11 -- 147: array(2) { 148: ["three"]=> 149: int(3) 150: [0]=> 151: int(4) 152: } 153: 154: -- Iteration 12 -- 155: array(1) { 156: ["three"]=> 157: int(3) 158: } 159: 160: -- Iteration 13 -- 161: array(0) { 162: } 163: 164: -- Iteration 14 -- 165: array(1) { 166: ["three"]=> 167: int(3) 168: } 169: 170: -- Iteration 15 -- 171: array(0) { 172: } 173: 174: -- Iteration 16 -- 175: array(0) { 176: } 177: 178: -- Iteration 17 -- 179: array(0) { 180: } 181: 182: -- Iteration 18 -- 183: array(0) { 184: } 185: 186: -- Iteration 19 -- 187: array(0) { 188: } 189: 190: -- Iteration 20 -- 191: array(0) { 192: } 193: 194: -- Iteration 21 -- 195: array(0) { 196: } 197: 198: -- Iteration 22 -- 199: array(2) { 200: ["three"]=> 201: int(3) 202: [0]=> 203: int(4) 204: } 205: 206: -- Iteration 23 -- 207: array(2) { 208: ["three"]=> 209: int(3) 210: [0]=> 211: int(4) 212: } 213: Done