array_slice_variation5.phpt 2.6 KB

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