(PHP 4, PHP 5, PHP 7, PHP 8)
range — Create an array containing a range of elements
Create an array containing a range of elements.
   If both start and end are
   strings, and step is int
   the produced array will be a sequence of bytes.
   Otherwise, the produced array will be a sequence of numbers.
  
   The sequence is increasing if start is less than
   equal to end.
   Otherwise, the sequence is decreasing.
  
   Returns a sequence of elements as an array with the first
   element being start going up to
   end, with each value of the sequence being
   step values apart.
  
   The last element of the returned array is either end
   or the previous element of the sequence,
   depending on the value of step.
  
   If both start and end are
   strings, and step is int
   the produced array will be a sequence of bytes,
   generally latin ASCII characters.
  
   If at least one of start, end,
   or step is float
   the produced array will be a sequence of float.
  
Otherwise, the produced array will be a sequence of int.
step is 0,
     a ValueError is thrown.
    
   start, end,
     or step is not is_finite(),
     a ValueError is thrown.
    
   step is negative,
     but the produced range is increasing
     (i.e. $start <= $end),
     a ValueError is thrown.
    
   start or end
     is the empty string '',
     an E_WARNING is emitted and
     the empty string will be interpreted as 0.
    
   start or end is a
     non-numeric string
     with more than one byte, an E_WARNING is emitted.
    
   start or end is a string
     that is implicitly cast to an int because the other boundary
     value is a number, an E_WARNING is emitted.
    
   step is a float,
     and start and end are
     non-numeric string,
     an E_WARNING is emitted.
    
   | Version | Description | 
|---|---|
| 8.3.0 | 
       If both start and end
       are strings then range() will now always produce
       an array of bytes.
       Previously if one of the boundary values was a numeric string,
       then the other boundary value was implicitly cast to int.
       | 
     
| 8.3.0 | 
       An E_WARNING is now emitted if
       start or end
       is a string that is implicitly cast to int
       because the other boundary value is a number.
       | 
     
| 8.3.0 | 
       An E_WARNING is now emitted if
       start or end
       is a non-numeric string with more than one byte.
       | 
     
| 8.3.0 | 
       An E_WARNING is now emitted if
       start or end
       is the empty string.
       | 
     
| 8.3.0 | 
       If step is a float with no
       fractional part, it will be interpreted as an int.
       | 
     
| 8.3.0 | 
       A ValueError is now thrown if
       step is negative when producing an increasing
       range.
       | 
     
| 8.3.0 | 
       A ValueError is now thrown if
       step is not finite.
       | 
     
| 8.3.0 | 
       A TypeError is now thrown if
       start or end
       is an array, object, or resource.
       Previously they were implicitly cast to int.
       | 
     
Example #1 range() examples
<?php
echo implode(', ', range(0, 12)), PHP_EOL;
echo implode(', ', range(0, 100, 10)), PHP_EOL;
echo implode(', ', range('a', 'i')), PHP_EOL;
echo implode(', ', range('c', 'a')), PHP_EOL;
echo implode(', ', range('A', 'z')), PHP_EOL;
?>The above example will output:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100 a, b, c, d, e, f, g, h, i c, b, a A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, [, \, ], ^, _, `, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z