1--TEST-- 2Test array_slice() function : usage variations - Pass different integers as $offset argument 3--FILE-- 4<?php 5/* Prototype : array array_slice(array $input, int $offset [, int $length [, bool $preserve_keys]]) 6 * Description: Returns elements specified by offset and length 7 * Source code: ext/standard/array.c 8 */ 9 10/* 11 * Pass different integers as $offset argument to test how array_slice() behaves 12 */ 13 14echo "*** Testing array_slice() : usage variations ***\n"; 15 16$input = array ('one' => 1, 2 => 'two', 'three', 9 => 'nine', 'ten' => 10); 17 18for ($i = -7; $i <= 7; $i++) { 19 echo "\n-- \$offset is $i --\n"; 20 var_dump(array_slice($input, $i)); 21} 22echo "\n-- \$offset is maximum integer value --\n"; 23var_dump(array_slice($input, PHP_INT_MAX)); 24 25echo "\n-- \$offset is minimum integer value --\n"; 26var_dump(array_slice($input, -PHP_INT_MAX)); 27 28echo "Done"; 29?> 30--EXPECT-- 31*** Testing array_slice() : usage variations *** 32 33-- $offset is -7 -- 34array(5) { 35 ["one"]=> 36 int(1) 37 [0]=> 38 string(3) "two" 39 [1]=> 40 string(5) "three" 41 [2]=> 42 string(4) "nine" 43 ["ten"]=> 44 int(10) 45} 46 47-- $offset is -6 -- 48array(5) { 49 ["one"]=> 50 int(1) 51 [0]=> 52 string(3) "two" 53 [1]=> 54 string(5) "three" 55 [2]=> 56 string(4) "nine" 57 ["ten"]=> 58 int(10) 59} 60 61-- $offset is -5 -- 62array(5) { 63 ["one"]=> 64 int(1) 65 [0]=> 66 string(3) "two" 67 [1]=> 68 string(5) "three" 69 [2]=> 70 string(4) "nine" 71 ["ten"]=> 72 int(10) 73} 74 75-- $offset is -4 -- 76array(4) { 77 [0]=> 78 string(3) "two" 79 [1]=> 80 string(5) "three" 81 [2]=> 82 string(4) "nine" 83 ["ten"]=> 84 int(10) 85} 86 87-- $offset is -3 -- 88array(3) { 89 [0]=> 90 string(5) "three" 91 [1]=> 92 string(4) "nine" 93 ["ten"]=> 94 int(10) 95} 96 97-- $offset is -2 -- 98array(2) { 99 [0]=> 100 string(4) "nine" 101 ["ten"]=> 102 int(10) 103} 104 105-- $offset is -1 -- 106array(1) { 107 ["ten"]=> 108 int(10) 109} 110 111-- $offset is 0 -- 112array(5) { 113 ["one"]=> 114 int(1) 115 [0]=> 116 string(3) "two" 117 [1]=> 118 string(5) "three" 119 [2]=> 120 string(4) "nine" 121 ["ten"]=> 122 int(10) 123} 124 125-- $offset is 1 -- 126array(4) { 127 [0]=> 128 string(3) "two" 129 [1]=> 130 string(5) "three" 131 [2]=> 132 string(4) "nine" 133 ["ten"]=> 134 int(10) 135} 136 137-- $offset is 2 -- 138array(3) { 139 [0]=> 140 string(5) "three" 141 [1]=> 142 string(4) "nine" 143 ["ten"]=> 144 int(10) 145} 146 147-- $offset is 3 -- 148array(2) { 149 [0]=> 150 string(4) "nine" 151 ["ten"]=> 152 int(10) 153} 154 155-- $offset is 4 -- 156array(1) { 157 ["ten"]=> 158 int(10) 159} 160 161-- $offset is 5 -- 162array(0) { 163} 164 165-- $offset is 6 -- 166array(0) { 167} 168 169-- $offset is 7 -- 170array(0) { 171} 172 173-- $offset is maximum integer value -- 174array(0) { 175} 176 177-- $offset is minimum integer value -- 178array(5) { 179 ["one"]=> 180 int(1) 181 [0]=> 182 string(3) "two" 183 [1]=> 184 string(5) "three" 185 [2]=> 186 string(4) "nine" 187 ["ten"]=> 188 int(10) 189} 190Done 191