1--TEST-- 2Test str_split() function : usage variations - different integer values for 'split_length' argument 3--SKIPIF-- 4<?php 5if (PHP_INT_SIZE != 4) die("skip this test is for 32bit platform only"); 6?> 7--FILE-- 8<?php 9/* Prototype : array str_split(string $str [, int $split_length]) 10 * Description: Convert a string to an array. If split_length is 11 specified, break the string down into chunks each 12 split_length characters long. 13 * Source code: ext/standard/string.c 14 * Alias to functions: none 15*/ 16 17/* 18* passing different integer values for 'split_length' argument to str_split() 19*/ 20 21echo "*** Testing str_split() : different intger values for 'split_length' ***\n"; 22//Initialise variables 23$str = 'This is a string with 123 & escape char \t'; 24 25//different values for 'split_length' 26$values = array ( 27 0, 28 1, 29 -123, //negative integer 30 0234, //octal number 31 0x1A, //hexadecimal number 32 2147483647, //max positive integer number 33 2147483648, //max positive integer+1 34 -2147483648, //min negative integer 35); 36 37//loop through each element of $values for 'split_length' 38for($count = 0; $count < count($values); $count++) { 39 echo "-- Iteration ".($count + 1)." --\n"; 40 var_dump( str_split($str, $values[$count]) ); 41} 42echo "Done" 43?> 44--EXPECTF-- 45*** Testing str_split() : different intger values for 'split_length' *** 46-- Iteration 1 -- 47 48Warning: str_split(): The length of each segment must be greater than zero in %s on line %d 49bool(false) 50-- Iteration 2 -- 51array(42) { 52 [0]=> 53 string(1) "T" 54 [1]=> 55 string(1) "h" 56 [2]=> 57 string(1) "i" 58 [3]=> 59 string(1) "s" 60 [4]=> 61 string(1) " " 62 [5]=> 63 string(1) "i" 64 [6]=> 65 string(1) "s" 66 [7]=> 67 string(1) " " 68 [8]=> 69 string(1) "a" 70 [9]=> 71 string(1) " " 72 [10]=> 73 string(1) "s" 74 [11]=> 75 string(1) "t" 76 [12]=> 77 string(1) "r" 78 [13]=> 79 string(1) "i" 80 [14]=> 81 string(1) "n" 82 [15]=> 83 string(1) "g" 84 [16]=> 85 string(1) " " 86 [17]=> 87 string(1) "w" 88 [18]=> 89 string(1) "i" 90 [19]=> 91 string(1) "t" 92 [20]=> 93 string(1) "h" 94 [21]=> 95 string(1) " " 96 [22]=> 97 string(1) "1" 98 [23]=> 99 string(1) "2" 100 [24]=> 101 string(1) "3" 102 [25]=> 103 string(1) " " 104 [26]=> 105 string(1) "&" 106 [27]=> 107 string(1) " " 108 [28]=> 109 string(1) "e" 110 [29]=> 111 string(1) "s" 112 [30]=> 113 string(1) "c" 114 [31]=> 115 string(1) "a" 116 [32]=> 117 string(1) "p" 118 [33]=> 119 string(1) "e" 120 [34]=> 121 string(1) " " 122 [35]=> 123 string(1) "c" 124 [36]=> 125 string(1) "h" 126 [37]=> 127 string(1) "a" 128 [38]=> 129 string(1) "r" 130 [39]=> 131 string(1) " " 132 [40]=> 133 string(1) "\" 134 [41]=> 135 string(1) "t" 136} 137-- Iteration 3 -- 138 139Warning: str_split(): The length of each segment must be greater than zero in %s on line %d 140bool(false) 141-- Iteration 4 -- 142array(1) { 143 [0]=> 144 string(42) "This is a string with 123 & escape char \t" 145} 146-- Iteration 5 -- 147array(2) { 148 [0]=> 149 string(26) "This is a string with 123 " 150 [1]=> 151 string(16) "& escape char \t" 152} 153-- Iteration 6 -- 154array(1) { 155 [0]=> 156 string(42) "This is a string with 123 & escape char \t" 157} 158-- Iteration 7 -- 159 160Warning: str_split() expects parameter 2 to be integer, float given in %s line %d 161NULL 162-- Iteration 8 -- 163 164Warning: str_split(): The length of each segment must be greater than zero in %s on line %d 165bool(false) 166Done 167