1--TEST-- 2Test array_slice() function : usage variations - pass different int values as $length arg 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 integer values as $length argument to array_slice() to test behaviour 12 */ 13 14echo "*** Testing array_slice() : usage variations ***\n"; 15 16$input = array ('one' => 1, 2 => 'two', 'three', 9 => 'nine', 'ten' => 10); 17$offset = 1; 18 19for ($i = -6; $i <= 6; $i++) { 20 echo "\n-- \$length is $i --\n"; 21 var_dump(array_slice($input, $offset, $i)); 22} 23echo "\n-- \$length is maximum integer value --\n"; 24var_dump(array_slice($input, $offset, PHP_INT_MAX)); 25 26echo "\n-- \$length is minimum integer value --\n"; 27var_dump(array_slice($input, $offset, -PHP_INT_MAX)); 28 29echo "Done"; 30?> 31--EXPECTF-- 32*** Testing array_slice() : usage variations *** 33 34-- $length is -6 -- 35array(0) { 36} 37 38-- $length is -5 -- 39array(0) { 40} 41 42-- $length is -4 -- 43array(0) { 44} 45 46-- $length is -3 -- 47array(1) { 48 [0]=> 49 string(3) "two" 50} 51 52-- $length is -2 -- 53array(2) { 54 [0]=> 55 string(3) "two" 56 [1]=> 57 string(5) "three" 58} 59 60-- $length is -1 -- 61array(3) { 62 [0]=> 63 string(3) "two" 64 [1]=> 65 string(5) "three" 66 [2]=> 67 string(4) "nine" 68} 69 70-- $length is 0 -- 71array(0) { 72} 73 74-- $length is 1 -- 75array(1) { 76 [0]=> 77 string(3) "two" 78} 79 80-- $length is 2 -- 81array(2) { 82 [0]=> 83 string(3) "two" 84 [1]=> 85 string(5) "three" 86} 87 88-- $length is 3 -- 89array(3) { 90 [0]=> 91 string(3) "two" 92 [1]=> 93 string(5) "three" 94 [2]=> 95 string(4) "nine" 96} 97 98-- $length is 4 -- 99array(4) { 100 [0]=> 101 string(3) "two" 102 [1]=> 103 string(5) "three" 104 [2]=> 105 string(4) "nine" 106 ["ten"]=> 107 int(10) 108} 109 110-- $length is 5 -- 111array(4) { 112 [0]=> 113 string(3) "two" 114 [1]=> 115 string(5) "three" 116 [2]=> 117 string(4) "nine" 118 ["ten"]=> 119 int(10) 120} 121 122-- $length is 6 -- 123array(4) { 124 [0]=> 125 string(3) "two" 126 [1]=> 127 string(5) "three" 128 [2]=> 129 string(4) "nine" 130 ["ten"]=> 131 int(10) 132} 133 134-- $length is maximum integer value -- 135array(4) { 136 [0]=> 137 string(3) "two" 138 [1]=> 139 string(5) "three" 140 [2]=> 141 string(4) "nine" 142 ["ten"]=> 143 int(10) 144} 145 146-- $length is minimum integer value -- 147array(0) { 148} 149Done 150