jani            Tue Dec 11 08:30:46 2007 UTC

  Added files:                 
    /php-src/ext/standard/tests/array   bug43541.phpt 

  Modified files:              
    /php-src/ext/standard       array.c 
    /php-src/ext/standard/tests/array   array_slice.phpt 
  Log:
  - Fixed bug #43541 (array_slice() length parameter messed up)
  
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/array.c?r1=1.432&r2=1.433&diff_format=u
Index: php-src/ext/standard/array.c
diff -u php-src/ext/standard/array.c:1.432 php-src/ext/standard/array.c:1.433
--- php-src/ext/standard/array.c:1.432  Wed Dec  5 19:57:09 2007
+++ php-src/ext/standard/array.c        Tue Dec 11 08:30:46 2007
@@ -21,7 +21,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: array.c,v 1.432 2007/12/05 19:57:09 iliaa Exp $ */
+/* $Id: array.c,v 1.433 2007/12/11 08:30:46 jani Exp $ */
 
 #include "php.h"
 #include "php_ini.h"
@@ -2292,13 +2292,12 @@
        zend_bool preserve_keys = 0; /* Whether to preserve keys while copying 
to the new array or not */
        int              num_in,                /* Number of elements in the 
input array */
                         pos;                   /* Current position in the 
array */
-       zval    *length_param;
        zstr string_key;
        uint string_key_len;
        ulong num_key;
        HashPosition hpos;
 
-       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "al|zb", &input, 
&offset, &length_param, &preserve_keys) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "al|lb", &input, 
&offset, &length, &preserve_keys) == FAILURE) {
                return;
        }
 
@@ -2306,9 +2305,7 @@
        num_in = zend_hash_num_elements(Z_ARRVAL_P(input));
 
        /* We want all entries from offset to the end if length is not passed 
or length is 0 */
-       if (ZEND_NUM_ARGS() >= 3 && Z_TYPE_P(length_param) != IS_NULL) {
-               length = Z_LVAL_P(length_param);
-       } else {
+       if (length == 0) {
                length = num_in;
        }
 
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/array/array_slice.phpt?r1=1.2&r2=1.3&diff_format=u
Index: php-src/ext/standard/tests/array/array_slice.phpt
diff -u php-src/ext/standard/tests/array/array_slice.phpt:1.2 
php-src/ext/standard/tests/array/array_slice.phpt:1.3
--- php-src/ext/standard/tests/array/array_slice.phpt:1.2       Fri Apr 20 
21:13:45 2007
+++ php-src/ext/standard/tests/array/array_slice.phpt   Tue Dec 11 08:30:46 2007
@@ -1,7 +1,6 @@
 --TEST--
 Testing array_slice() function
 --FILE--
-
 <?php
 
 $var_array = array(
@@ -89,27 +88,26 @@
   var_dump (array_slice($var_array[2], -3, -2, false) );
 
 ?>
-
 --EXPECTF--
 *** Output for Zero Argument ***
 
-Warning: array_slice() expects at least %d parameters, %d given in %s on line 
%d
+Warning: array_slice() expects at least 2 parameters, 0 given in %s on line %d
 
 *** Output for Single array Argument ***
 
-Warning: array_slice() expects at least %d parameters, %d given in %s on line 
%d
+Warning: array_slice() expects at least 2 parameters, 1 given in %s on line %d
 
 *** Output for invalid number of Arguments ***
 
-Warning: array_slice() expects at most %d parameters, %d given in %s on line %d
+Warning: array_slice() expects at most 4 parameters, 5 given in %s on line %d
 
 *** Output for scalar Argument ***
 
-Warning: array_slice() expects parameter %d to be array, integer given in %s 
on line %d
+Warning: array_slice() expects parameter 1 to be array, integer given in %s on 
line %d
 
 *** Output for string Argument ***
 
-Warning: array_slice() expects parameter %d to be array, string given in %s on 
line %d%d
+Warning: array_slice() expects parameter 1 to be array, string given in %s on 
line %d
 
 *** Iteration 1 ***
 
@@ -218,7 +216,23 @@
   [2]=>
   int(4)
 }
-array(0) {
+array(8) {
+  [0]=>
+  int(2)
+  [1]=>
+  int(3)
+  [2]=>
+  int(4)
+  [3]=>
+  int(5)
+  [4]=>
+  int(6)
+  [5]=>
+  int(7)
+  [6]=>
+  int(8)
+  [7]=>
+  int(9)
 }
 array(5) {
   [0]=>
@@ -240,7 +254,25 @@
   [2]=>
   int(3)
 }
-array(0) {
+array(9) {
+  [0]=>
+  int(1)
+  [1]=>
+  int(2)
+  [2]=>
+  int(3)
+  [3]=>
+  int(4)
+  [4]=>
+  int(5)
+  [5]=>
+  int(6)
+  [6]=>
+  int(7)
+  [7]=>
+  int(8)
+  [8]=>
+  int(9)
 }
 array(6) {
   [0]=>
@@ -262,7 +294,11 @@
   [1]=>
   int(9)
 }
-array(0) {
+array(2) {
+  [0]=>
+  int(8)
+  [1]=>
+  int(9)
 }
 array(0) {
 }
@@ -276,7 +312,23 @@
   [3]=>
   int(4)
 }
-array(0) {
+array(8) {
+  [1]=>
+  int(2)
+  [2]=>
+  int(3)
+  [3]=>
+  int(4)
+  [4]=>
+  int(5)
+  [5]=>
+  int(6)
+  [6]=>
+  int(7)
+  [7]=>
+  int(8)
+  [8]=>
+  int(9)
 }
 array(5) {
   [1]=>
@@ -298,7 +350,25 @@
   [2]=>
   int(3)
 }
-array(0) {
+array(9) {
+  [0]=>
+  int(1)
+  [1]=>
+  int(2)
+  [2]=>
+  int(3)
+  [3]=>
+  int(4)
+  [4]=>
+  int(5)
+  [5]=>
+  int(6)
+  [6]=>
+  int(7)
+  [7]=>
+  int(8)
+  [8]=>
+  int(9)
 }
 array(6) {
   [0]=>
@@ -320,7 +390,11 @@
   [8]=>
   int(9)
 }
-array(0) {
+array(2) {
+  [7]=>
+  int(8)
+  [8]=>
+  int(9)
 }
 array(0) {
 }
@@ -366,7 +440,15 @@
   [2]=>
   string(4) "Four"
 }
-array(0) {
+array(4) {
+  [0]=>
+  string(3) "Two"
+  [1]=>
+  string(5) "Three"
+  [2]=>
+  string(4) "Four"
+  [3]=>
+  string(4) "Five"
 }
 array(1) {
   [0]=>
@@ -380,7 +462,17 @@
   [2]=>
   string(5) "Three"
 }
-array(0) {
+array(5) {
+  [0]=>
+  string(3) "One"
+  [1]=>
+  string(3) "Two"
+  [2]=>
+  string(5) "Three"
+  [3]=>
+  string(4) "Four"
+  [4]=>
+  string(4) "Five"
 }
 array(2) {
   [0]=>
@@ -394,7 +486,11 @@
   [1]=>
   string(4) "Five"
 }
-array(0) {
+array(2) {
+  [0]=>
+  string(4) "Four"
+  [1]=>
+  string(4) "Five"
 }
 array(0) {
 }
@@ -408,7 +504,15 @@
   [3]=>
   string(4) "Four"
 }
-array(0) {
+array(4) {
+  [1]=>
+  string(3) "Two"
+  [2]=>
+  string(5) "Three"
+  [3]=>
+  string(4) "Four"
+  [4]=>
+  string(4) "Five"
 }
 array(1) {
   [1]=>
@@ -422,7 +526,17 @@
   [2]=>
   string(5) "Three"
 }
-array(0) {
+array(5) {
+  [0]=>
+  string(3) "One"
+  [1]=>
+  string(3) "Two"
+  [2]=>
+  string(5) "Three"
+  [3]=>
+  string(4) "Four"
+  [4]=>
+  string(4) "Five"
 }
 array(2) {
   [0]=>
@@ -436,7 +550,11 @@
   [4]=>
   string(4) "Five"
 }
-array(0) {
+array(2) {
+  [3]=>
+  string(4) "Four"
+  [4]=>
+  string(4) "Five"
 }
 array(0) {
 }
@@ -494,7 +612,21 @@
   [2]=>
   string(5) "seven"
 }
-array(0) {
+array(7) {
+  [0]=>
+  string(3) "six"
+  [1]=>
+  int(7)
+  [2]=>
+  string(5) "seven"
+  [3]=>
+  int(8)
+  [4]=>
+  string(5) "eight"
+  [5]=>
+  int(9)
+  [6]=>
+  string(4) "nine"
 }
 array(4) {
   [0]=>
@@ -514,7 +646,23 @@
   [2]=>
   int(7)
 }
-array(0) {
+array(8) {
+  [0]=>
+  int(6)
+  [1]=>
+  string(3) "six"
+  [2]=>
+  int(7)
+  [3]=>
+  string(5) "seven"
+  [4]=>
+  int(8)
+  [5]=>
+  string(5) "eight"
+  [6]=>
+  int(9)
+  [7]=>
+  string(4) "nine"
 }
 array(5) {
   [0]=>
@@ -534,7 +682,11 @@
   [1]=>
   string(4) "nine"
 }
-array(0) {
+array(2) {
+  [0]=>
+  int(9)
+  [1]=>
+  string(4) "nine"
 }
 array(0) {
 }
@@ -548,7 +700,21 @@
   [3]=>
   string(5) "seven"
 }
-array(0) {
+array(7) {
+  [1]=>
+  string(3) "six"
+  [2]=>
+  int(7)
+  [3]=>
+  string(5) "seven"
+  [4]=>
+  int(8)
+  [5]=>
+  string(5) "eight"
+  [6]=>
+  int(9)
+  [7]=>
+  string(4) "nine"
 }
 array(4) {
   [1]=>
@@ -568,7 +734,23 @@
   [2]=>
   int(7)
 }
-array(0) {
+array(8) {
+  [0]=>
+  int(6)
+  [1]=>
+  string(3) "six"
+  [2]=>
+  int(7)
+  [3]=>
+  string(5) "seven"
+  [4]=>
+  int(8)
+  [5]=>
+  string(5) "eight"
+  [6]=>
+  int(9)
+  [7]=>
+  string(4) "nine"
 }
 array(5) {
   [0]=>
@@ -588,7 +770,11 @@
   [7]=>
   string(4) "nine"
 }
-array(0) {
+array(2) {
+  [6]=>
+  int(9)
+  [7]=>
+  string(4) "nine"
 }
 array(0) {
 }
@@ -634,7 +820,15 @@
   ["d"]=>
   string(3) "ddd"
 }
-array(0) {
+array(4) {
+  ["A"]=>
+  string(3) "AAA"
+  ["c"]=>
+  string(3) "ccc"
+  ["d"]=>
+  string(3) "ddd"
+  ["e"]=>
+  string(3) "eee"
 }
 array(1) {
   ["A"]=>
@@ -648,7 +842,17 @@
   ["c"]=>
   string(3) "ccc"
 }
-array(0) {
+array(5) {
+  ["a"]=>
+  string(3) "aaa"
+  ["A"]=>
+  string(3) "AAA"
+  ["c"]=>
+  string(3) "ccc"
+  ["d"]=>
+  string(3) "ddd"
+  ["e"]=>
+  string(3) "eee"
 }
 array(2) {
   ["a"]=>
@@ -662,10 +866,14 @@
   ["e"]=>
   string(3) "eee"
 }
-array(0) {
-}
-array(0) {
-}
+array(2) {
+  ["d"]=>
+  string(3) "ddd"
+  ["e"]=>
+  string(3) "eee"
+}
+array(0) {
+}
 
 *** Variation with first two arguments with preserve_key value TRUE ***
 array(3) {
@@ -676,7 +884,15 @@
   ["d"]=>
   string(3) "ddd"
 }
-array(0) {
+array(4) {
+  ["A"]=>
+  string(3) "AAA"
+  ["c"]=>
+  string(3) "ccc"
+  ["d"]=>
+  string(3) "ddd"
+  ["e"]=>
+  string(3) "eee"
 }
 array(1) {
   ["A"]=>
@@ -690,7 +906,17 @@
   ["c"]=>
   string(3) "ccc"
 }
-array(0) {
+array(5) {
+  ["a"]=>
+  string(3) "aaa"
+  ["A"]=>
+  string(3) "AAA"
+  ["c"]=>
+  string(3) "ccc"
+  ["d"]=>
+  string(3) "ddd"
+  ["e"]=>
+  string(3) "eee"
 }
 array(2) {
   ["a"]=>
@@ -704,7 +930,11 @@
   ["e"]=>
   string(3) "eee"
 }
-array(0) {
+array(2) {
+  ["d"]=>
+  string(3) "ddd"
+  ["e"]=>
+  string(3) "eee"
 }
 array(0) {
 }
@@ -750,7 +980,15 @@
   [2]=>
   string(4) "four"
 }
-array(0) {
+array(4) {
+  [0]=>
+  string(3) "two"
+  [1]=>
+  string(5) "three"
+  [2]=>
+  string(4) "four"
+  [3]=>
+  string(4) "five"
 }
 array(1) {
   [0]=>
@@ -764,7 +1002,17 @@
   [2]=>
   string(5) "three"
 }
-array(0) {
+array(5) {
+  [0]=>
+  string(3) "one"
+  [1]=>
+  string(3) "two"
+  [2]=>
+  string(5) "three"
+  [3]=>
+  string(4) "four"
+  [4]=>
+  string(4) "five"
 }
 array(2) {
   [0]=>
@@ -778,7 +1026,11 @@
   [1]=>
   string(4) "five"
 }
-array(0) {
+array(2) {
+  [0]=>
+  string(4) "four"
+  [1]=>
+  string(4) "five"
 }
 array(0) {
 }
@@ -792,7 +1044,15 @@
   [4]=>
   string(4) "four"
 }
-array(0) {
+array(4) {
+  [2]=>
+  string(3) "two"
+  [3]=>
+  string(5) "three"
+  [4]=>
+  string(4) "four"
+  [5]=>
+  string(4) "five"
 }
 array(1) {
   [2]=>
@@ -806,7 +1066,17 @@
   [3]=>
   string(5) "three"
 }
-array(0) {
+array(5) {
+  [1]=>
+  string(3) "one"
+  [2]=>
+  string(3) "two"
+  [3]=>
+  string(5) "three"
+  [4]=>
+  string(4) "four"
+  [5]=>
+  string(4) "five"
 }
 array(2) {
   [1]=>
@@ -820,7 +1090,11 @@
   [5]=>
   string(4) "five"
 }
-array(0) {
+array(2) {
+  [4]=>
+  string(4) "four"
+  [5]=>
+  string(4) "five"
 }
 array(0) {
 }
@@ -866,7 +1140,15 @@
   [2]=>
   string(4) "four"
 }
-array(0) {
+array(4) {
+  [0]=>
+  string(3) "two"
+  [1]=>
+  int(7)
+  [2]=>
+  string(4) "four"
+  [3]=>
+  string(4) "five"
 }
 array(1) {
   [0]=>
@@ -880,7 +1162,17 @@
   [2]=>
   int(7)
 }
-array(0) {
+array(5) {
+  [0]=>
+  string(3) "one"
+  [1]=>
+  string(3) "two"
+  [2]=>
+  int(7)
+  [3]=>
+  string(4) "four"
+  [4]=>
+  string(4) "five"
 }
 array(2) {
   [0]=>
@@ -894,7 +1186,11 @@
   [1]=>
   string(4) "five"
 }
-array(0) {
+array(2) {
+  [0]=>
+  string(4) "four"
+  [1]=>
+  string(4) "five"
 }
 array(0) {
 }
@@ -908,7 +1204,15 @@
   [4]=>
   string(4) "four"
 }
-array(0) {
+array(4) {
+  [2]=>
+  string(3) "two"
+  [3]=>
+  int(7)
+  [4]=>
+  string(4) "four"
+  [5]=>
+  string(4) "five"
 }
 array(1) {
   [2]=>
@@ -922,7 +1226,17 @@
   [3]=>
   int(7)
 }
-array(0) {
+array(5) {
+  [1]=>
+  string(3) "one"
+  [2]=>
+  string(3) "two"
+  [3]=>
+  int(7)
+  [4]=>
+  string(4) "four"
+  [5]=>
+  string(4) "five"
 }
 array(2) {
   [1]=>
@@ -936,7 +1250,11 @@
   [5]=>
   string(4) "five"
 }
-array(0) {
+array(2) {
+  [4]=>
+  string(4) "four"
+  [5]=>
+  string(4) "five"
 }
 array(0) {
 }
@@ -1002,7 +1320,25 @@
   [""]=>
   string(5) "blank"
 }
-array(0) {
+array(9) {
+  [0]=>
+  string(3) "one"
+  [1]=>
+  int(6)
+  [""]=>
+  string(5) "blank"
+  [2]=>
+  string(5) "float"
+  ["F"]=>
+  string(3) "FFF"
+  ["blank"]=>
+  string(0) ""
+  [3]=>
+  float(3.7)
+  [4]=>
+  string(4) "Five"
+  [5]=>
+  float(8.6)
 }
 array(6) {
   [0]=>
@@ -1026,7 +1362,27 @@
   [1]=>
   int(6)
 }
-array(0) {
+array(10) {
+  ["f"]=>
+  string(3) "fff"
+  [0]=>
+  string(3) "one"
+  [1]=>
+  int(6)
+  [""]=>
+  string(5) "blank"
+  [2]=>
+  string(5) "float"
+  ["F"]=>
+  string(3) "FFF"
+  ["blank"]=>
+  string(0) ""
+  [3]=>
+  float(3.7)
+  [4]=>
+  string(4) "Five"
+  [5]=>
+  float(8.6)
 }
 array(7) {
   ["f"]=>
@@ -1050,7 +1406,11 @@
   [1]=>
   float(8.6)
 }
-array(0) {
+array(2) {
+  [0]=>
+  string(4) "Five"
+  [1]=>
+  float(8.6)
 }
 array(0) {
 }
@@ -1064,7 +1424,25 @@
   [""]=>
   string(5) "blank"
 }
-array(0) {
+array(9) {
+  [1]=>
+  string(3) "one"
+  [4]=>
+  int(6)
+  [""]=>
+  string(5) "blank"
+  [2]=>
+  string(5) "float"
+  ["F"]=>
+  string(3) "FFF"
+  ["blank"]=>
+  string(0) ""
+  [3]=>
+  float(3.7)
+  [5]=>
+  string(4) "Five"
+  [6]=>
+  float(8.6)
 }
 array(6) {
   [1]=>
@@ -1088,7 +1466,27 @@
   [4]=>
   int(6)
 }
-array(0) {
+array(10) {
+  ["f"]=>
+  string(3) "fff"
+  [1]=>
+  string(3) "one"
+  [4]=>
+  int(6)
+  [""]=>
+  string(5) "blank"
+  [2]=>
+  string(5) "float"
+  ["F"]=>
+  string(3) "FFF"
+  ["blank"]=>
+  string(0) ""
+  [3]=>
+  float(3.7)
+  [5]=>
+  string(4) "Five"
+  [6]=>
+  float(8.6)
 }
 array(7) {
   ["f"]=>
@@ -1112,7 +1510,11 @@
   [6]=>
   float(8.6)
 }
-array(0) {
+array(2) {
+  [5]=>
+  string(4) "Five"
+  [6]=>
+  float(8.6)
 }
 array(0) {
 }
@@ -1154,7 +1556,13 @@
   [2]=>
   string(2) "45"
 }
-array(0) {
+array(3) {
+  [0]=>
+  string(4) "name"
+  [1]=>
+  string(3) "age"
+  [2]=>
+  string(2) "45"
 }
 array(0) {
 }
@@ -1166,9 +1574,17 @@
   [2]=>
   string(3) "age"
 }
-array(0) {
-}
-array(1) {
+array(4) {
+  [0]=>
+  int(12)
+  [1]=>
+  string(4) "name"
+  [2]=>
+  string(3) "age"
+  [3]=>
+  string(2) "45"
+}
+array(1) {
   [0]=>
   int(12)
 }
@@ -1178,7 +1594,11 @@
   [1]=>
   string(2) "45"
 }
-array(0) {
+array(2) {
+  [0]=>
+  string(3) "age"
+  [1]=>
+  string(2) "45"
 }
 array(0) {
 }
@@ -1192,7 +1612,13 @@
   [3]=>
   string(2) "45"
 }
-array(0) {
+array(3) {
+  [1]=>
+  string(4) "name"
+  [2]=>
+  string(3) "age"
+  [3]=>
+  string(2) "45"
 }
 array(0) {
 }
@@ -1204,7 +1630,15 @@
   [2]=>
   string(3) "age"
 }
-array(0) {
+array(4) {
+  [0]=>
+  int(12)
+  [1]=>
+  string(4) "name"
+  [2]=>
+  string(3) "age"
+  [3]=>
+  string(2) "45"
 }
 array(1) {
   [0]=>
@@ -1216,7 +1650,11 @@
   [3]=>
   string(2) "45"
 }
-array(0) {
+array(2) {
+  [2]=>
+  string(3) "age"
+  [3]=>
+  string(2) "45"
 }
 array(0) {
 }
@@ -1307,7 +1745,23 @@
   array(0) {
   }
 }
-array(0) {
+array(2) {
+  [0]=>
+  array(5) {
+    [0]=>
+    int(10)
+    [1]=>
+    int(20)
+    [2]=>
+    int(30)
+    [3]=>
+    int(40)
+    [4]=>
+    int(50)
+  }
+  [1]=>
+  array(0) {
+  }
 }
 array(0) {
 }
@@ -1338,7 +1792,32 @@
   array(0) {
   }
 }
-array(0) {
+array(3) {
+  [0]=>
+  array(3) {
+    [0]=>
+    string(3) "oNe"
+    [1]=>
+    string(3) "tWo"
+    [2]=>
+    int(4)
+  }
+  [1]=>
+  array(5) {
+    [0]=>
+    int(10)
+    [1]=>
+    int(20)
+    [2]=>
+    int(30)
+    [3]=>
+    int(40)
+    [4]=>
+    int(50)
+  }
+  [2]=>
+  array(0) {
+  }
 }
 array(0) {
 }
@@ -1360,7 +1839,23 @@
   array(0) {
   }
 }
-array(0) {
+array(2) {
+  [0]=>
+  array(5) {
+    [0]=>
+    int(10)
+    [1]=>
+    int(20)
+    [2]=>
+    int(30)
+    [3]=>
+    int(40)
+    [4]=>
+    int(50)
+  }
+  [1]=>
+  array(0) {
+  }
 }
 array(0) {
 }
@@ -1384,7 +1879,23 @@
   array(0) {
   }
 }
-array(0) {
+array(2) {
+  [1]=>
+  array(5) {
+    [0]=>
+    int(10)
+    [1]=>
+    int(20)
+    [2]=>
+    int(30)
+    [3]=>
+    int(40)
+    [4]=>
+    int(50)
+  }
+  [2]=>
+  array(0) {
+  }
 }
 array(0) {
 }
@@ -1415,7 +1926,32 @@
   array(0) {
   }
 }
-array(0) {
+array(3) {
+  [0]=>
+  array(3) {
+    [0]=>
+    string(3) "oNe"
+    [1]=>
+    string(3) "tWo"
+    [2]=>
+    int(4)
+  }
+  [1]=>
+  array(5) {
+    [0]=>
+    int(10)
+    [1]=>
+    int(20)
+    [2]=>
+    int(30)
+    [3]=>
+    int(40)
+    [4]=>
+    int(50)
+  }
+  [2]=>
+  array(0) {
+  }
 }
 array(0) {
 }
@@ -1437,7 +1973,23 @@
   array(0) {
   }
 }
-array(0) {
+array(2) {
+  [1]=>
+  array(5) {
+    [0]=>
+    int(10)
+    [1]=>
+    int(20)
+    [2]=>
+    int(30)
+    [3]=>
+    int(40)
+    [4]=>
+    int(50)
+  }
+  [2]=>
+  array(0) {
+  }
 }
 array(0) {
 }
@@ -1587,7 +2139,23 @@
   [2]=>
   int(4)
 }
-array(0) {
+array(8) {
+  [0]=>
+  int(2)
+  [1]=>
+  int(3)
+  [2]=>
+  int(4)
+  [3]=>
+  int(5)
+  [4]=>
+  int(6)
+  [5]=>
+  int(7)
+  [6]=>
+  int(8)
+  [7]=>
+  int(9)
 }
 array(5) {
   [0]=>
@@ -1609,7 +2177,25 @@
   [2]=>
   int(3)
 }
-array(0) {
+array(9) {
+  [0]=>
+  int(1)
+  [1]=>
+  int(2)
+  [2]=>
+  int(3)
+  [3]=>
+  int(4)
+  [4]=>
+  int(5)
+  [5]=>
+  int(6)
+  [6]=>
+  int(7)
+  [7]=>
+  int(8)
+  [8]=>
+  int(9)
 }
 array(6) {
   [0]=>
@@ -1631,7 +2217,11 @@
   [1]=>
   int(9)
 }
-array(0) {
+array(2) {
+  [0]=>
+  int(8)
+  [1]=>
+  int(9)
 }
 array(0) {
 }
@@ -1645,7 +2235,23 @@
   [3]=>
   int(4)
 }
-array(0) {
+array(8) {
+  [1]=>
+  int(2)
+  [2]=>
+  int(3)
+  [3]=>
+  int(4)
+  [4]=>
+  int(5)
+  [5]=>
+  int(6)
+  [6]=>
+  int(7)
+  [7]=>
+  int(8)
+  [8]=>
+  int(9)
 }
 array(5) {
   [1]=>
@@ -1667,7 +2273,25 @@
   [2]=>
   int(3)
 }
-array(0) {
+array(9) {
+  [0]=>
+  int(1)
+  [1]=>
+  int(2)
+  [2]=>
+  int(3)
+  [3]=>
+  int(4)
+  [4]=>
+  int(5)
+  [5]=>
+  int(6)
+  [6]=>
+  int(7)
+  [7]=>
+  int(8)
+  [8]=>
+  int(9)
 }
 array(6) {
   [0]=>
@@ -1689,7 +2313,11 @@
   [8]=>
   int(9)
 }
-array(0) {
+array(2) {
+  [7]=>
+  int(8)
+  [8]=>
+  int(9)
 }
 array(0) {
 }
@@ -1735,8 +2363,16 @@
   [2]=>
   unicode(4) "Four"
 }
-array(0) {
-}
+array(4) {
+  [0]=>
+  unicode(3) "Two"
+  [1]=>
+  unicode(5) "Three"
+  [2]=>
+  unicode(4) "Four"
+  [3]=>
+  unicode(4) "Five"
+}
 array(1) {
   [0]=>
   unicode(3) "Two"
@@ -1749,7 +2385,17 @@
   [2]=>
   unicode(5) "Three"
 }
-array(0) {
+array(5) {
+  [0]=>
+  unicode(3) "One"
+  [1]=>
+  unicode(3) "Two"
+  [2]=>
+  unicode(5) "Three"
+  [3]=>
+  unicode(4) "Four"
+  [4]=>
+  unicode(4) "Five"
 }
 array(2) {
   [0]=>
@@ -1763,7 +2409,11 @@
   [1]=>
   unicode(4) "Five"
 }
-array(0) {
+array(2) {
+  [0]=>
+  unicode(4) "Four"
+  [1]=>
+  unicode(4) "Five"
 }
 array(0) {
 }
@@ -1777,7 +2427,15 @@
   [3]=>
   unicode(4) "Four"
 }
-array(0) {
+array(4) {
+  [1]=>
+  unicode(3) "Two"
+  [2]=>
+  unicode(5) "Three"
+  [3]=>
+  unicode(4) "Four"
+  [4]=>
+  unicode(4) "Five"
 }
 array(1) {
   [1]=>
@@ -1791,7 +2449,17 @@
   [2]=>
   unicode(5) "Three"
 }
-array(0) {
+array(5) {
+  [0]=>
+  unicode(3) "One"
+  [1]=>
+  unicode(3) "Two"
+  [2]=>
+  unicode(5) "Three"
+  [3]=>
+  unicode(4) "Four"
+  [4]=>
+  unicode(4) "Five"
 }
 array(2) {
   [0]=>
@@ -1805,7 +2473,11 @@
   [4]=>
   unicode(4) "Five"
 }
-array(0) {
+array(2) {
+  [3]=>
+  unicode(4) "Four"
+  [4]=>
+  unicode(4) "Five"
 }
 array(0) {
 }
@@ -1863,7 +2535,21 @@
   [2]=>
   unicode(5) "seven"
 }
-array(0) {
+array(7) {
+  [0]=>
+  unicode(3) "six"
+  [1]=>
+  int(7)
+  [2]=>
+  unicode(5) "seven"
+  [3]=>
+  int(8)
+  [4]=>
+  unicode(5) "eight"
+  [5]=>
+  int(9)
+  [6]=>
+  unicode(4) "nine"
 }
 array(4) {
   [0]=>
@@ -1883,7 +2569,23 @@
   [2]=>
   int(7)
 }
-array(0) {
+array(8) {
+  [0]=>
+  int(6)
+  [1]=>
+  unicode(3) "six"
+  [2]=>
+  int(7)
+  [3]=>
+  unicode(5) "seven"
+  [4]=>
+  int(8)
+  [5]=>
+  unicode(5) "eight"
+  [6]=>
+  int(9)
+  [7]=>
+  unicode(4) "nine"
 }
 array(5) {
   [0]=>
@@ -1903,7 +2605,11 @@
   [1]=>
   unicode(4) "nine"
 }
-array(0) {
+array(2) {
+  [0]=>
+  int(9)
+  [1]=>
+  unicode(4) "nine"
 }
 array(0) {
 }
@@ -1917,7 +2623,21 @@
   [3]=>
   unicode(5) "seven"
 }
-array(0) {
+array(7) {
+  [1]=>
+  unicode(3) "six"
+  [2]=>
+  int(7)
+  [3]=>
+  unicode(5) "seven"
+  [4]=>
+  int(8)
+  [5]=>
+  unicode(5) "eight"
+  [6]=>
+  int(9)
+  [7]=>
+  unicode(4) "nine"
 }
 array(4) {
   [1]=>
@@ -1937,7 +2657,23 @@
   [2]=>
   int(7)
 }
-array(0) {
+array(8) {
+  [0]=>
+  int(6)
+  [1]=>
+  unicode(3) "six"
+  [2]=>
+  int(7)
+  [3]=>
+  unicode(5) "seven"
+  [4]=>
+  int(8)
+  [5]=>
+  unicode(5) "eight"
+  [6]=>
+  int(9)
+  [7]=>
+  unicode(4) "nine"
 }
 array(5) {
   [0]=>
@@ -1957,7 +2693,11 @@
   [7]=>
   unicode(4) "nine"
 }
-array(0) {
+array(2) {
+  [6]=>
+  int(9)
+  [7]=>
+  unicode(4) "nine"
 }
 array(0) {
 }
@@ -2003,7 +2743,15 @@
   [u"d"]=>
   unicode(3) "ddd"
 }
-array(0) {
+array(4) {
+  [u"A"]=>
+  unicode(3) "AAA"
+  [u"c"]=>
+  unicode(3) "ccc"
+  [u"d"]=>
+  unicode(3) "ddd"
+  [u"e"]=>
+  unicode(3) "eee"
 }
 array(1) {
   [u"A"]=>
@@ -2017,7 +2765,17 @@
   [u"c"]=>
   unicode(3) "ccc"
 }
-array(0) {
+array(5) {
+  [u"a"]=>
+  unicode(3) "aaa"
+  [u"A"]=>
+  unicode(3) "AAA"
+  [u"c"]=>
+  unicode(3) "ccc"
+  [u"d"]=>
+  unicode(3) "ddd"
+  [u"e"]=>
+  unicode(3) "eee"
 }
 array(2) {
   [u"a"]=>
@@ -2031,7 +2789,11 @@
   [u"e"]=>
   unicode(3) "eee"
 }
-array(0) {
+array(2) {
+  [u"d"]=>
+  unicode(3) "ddd"
+  [u"e"]=>
+  unicode(3) "eee"
 }
 array(0) {
 }
@@ -2045,7 +2807,15 @@
   [u"d"]=>
   unicode(3) "ddd"
 }
-array(0) {
+array(4) {
+  [u"A"]=>
+  unicode(3) "AAA"
+  [u"c"]=>
+  unicode(3) "ccc"
+  [u"d"]=>
+  unicode(3) "ddd"
+  [u"e"]=>
+  unicode(3) "eee"
 }
 array(1) {
   [u"A"]=>
@@ -2059,7 +2829,17 @@
   [u"c"]=>
   unicode(3) "ccc"
 }
-array(0) {
+array(5) {
+  [u"a"]=>
+  unicode(3) "aaa"
+  [u"A"]=>
+  unicode(3) "AAA"
+  [u"c"]=>
+  unicode(3) "ccc"
+  [u"d"]=>
+  unicode(3) "ddd"
+  [u"e"]=>
+  unicode(3) "eee"
 }
 array(2) {
   [u"a"]=>
@@ -2073,7 +2853,11 @@
   [u"e"]=>
   unicode(3) "eee"
 }
-array(0) {
+array(2) {
+  [u"d"]=>
+  unicode(3) "ddd"
+  [u"e"]=>
+  unicode(3) "eee"
 }
 array(0) {
 }
@@ -2119,7 +2903,15 @@
   [2]=>
   unicode(4) "four"
 }
-array(0) {
+array(4) {
+  [0]=>
+  unicode(3) "two"
+  [1]=>
+  unicode(5) "three"
+  [2]=>
+  unicode(4) "four"
+  [3]=>
+  unicode(4) "five"
 }
 array(1) {
   [0]=>
@@ -2133,7 +2925,17 @@
   [2]=>
   unicode(5) "three"
 }
-array(0) {
+array(5) {
+  [0]=>
+  unicode(3) "one"
+  [1]=>
+  unicode(3) "two"
+  [2]=>
+  unicode(5) "three"
+  [3]=>
+  unicode(4) "four"
+  [4]=>
+  unicode(4) "five"
 }
 array(2) {
   [0]=>
@@ -2147,7 +2949,11 @@
   [1]=>
   unicode(4) "five"
 }
-array(0) {
+array(2) {
+  [0]=>
+  unicode(4) "four"
+  [1]=>
+  unicode(4) "five"
 }
 array(0) {
 }
@@ -2161,7 +2967,15 @@
   [4]=>
   unicode(4) "four"
 }
-array(0) {
+array(4) {
+  [2]=>
+  unicode(3) "two"
+  [3]=>
+  unicode(5) "three"
+  [4]=>
+  unicode(4) "four"
+  [5]=>
+  unicode(4) "five"
 }
 array(1) {
   [2]=>
@@ -2175,7 +2989,17 @@
   [3]=>
   unicode(5) "three"
 }
-array(0) {
+array(5) {
+  [1]=>
+  unicode(3) "one"
+  [2]=>
+  unicode(3) "two"
+  [3]=>
+  unicode(5) "three"
+  [4]=>
+  unicode(4) "four"
+  [5]=>
+  unicode(4) "five"
 }
 array(2) {
   [1]=>
@@ -2189,7 +3013,11 @@
   [5]=>
   unicode(4) "five"
 }
-array(0) {
+array(2) {
+  [4]=>
+  unicode(4) "four"
+  [5]=>
+  unicode(4) "five"
 }
 array(0) {
 }
@@ -2235,21 +3063,39 @@
   [2]=>
   unicode(4) "four"
 }
-array(0) {
-}
-array(1) {
+array(4) {
   [0]=>
   unicode(3) "two"
-}
-array(3) {
-  [0]=>
-  unicode(3) "one"
+  [1]=>
+  int(7)
+  [2]=>
+  unicode(4) "four"
+  [3]=>
+  unicode(4) "five"
+}
+array(1) {
+  [0]=>
+  unicode(3) "two"
+}
+array(3) {
+  [0]=>
+  unicode(3) "one"
   [1]=>
   unicode(3) "two"
   [2]=>
   int(7)
 }
-array(0) {
+array(5) {
+  [0]=>
+  unicode(3) "one"
+  [1]=>
+  unicode(3) "two"
+  [2]=>
+  int(7)
+  [3]=>
+  unicode(4) "four"
+  [4]=>
+  unicode(4) "five"
 }
 array(2) {
   [0]=>
@@ -2263,7 +3109,11 @@
   [1]=>
   unicode(4) "five"
 }
-array(0) {
+array(2) {
+  [0]=>
+  unicode(4) "four"
+  [1]=>
+  unicode(4) "five"
 }
 array(0) {
 }
@@ -2277,7 +3127,15 @@
   [4]=>
   unicode(4) "four"
 }
-array(0) {
+array(4) {
+  [2]=>
+  unicode(3) "two"
+  [3]=>
+  int(7)
+  [4]=>
+  unicode(4) "four"
+  [5]=>
+  unicode(4) "five"
 }
 array(1) {
   [2]=>
@@ -2291,7 +3149,17 @@
   [3]=>
   int(7)
 }
-array(0) {
+array(5) {
+  [1]=>
+  unicode(3) "one"
+  [2]=>
+  unicode(3) "two"
+  [3]=>
+  int(7)
+  [4]=>
+  unicode(4) "four"
+  [5]=>
+  unicode(4) "five"
 }
 array(2) {
   [1]=>
@@ -2305,7 +3173,11 @@
   [5]=>
   unicode(4) "five"
 }
-array(0) {
+array(2) {
+  [4]=>
+  unicode(4) "four"
+  [5]=>
+  unicode(4) "five"
 }
 array(0) {
 }
@@ -2371,7 +3243,25 @@
   [u""]=>
   unicode(5) "blank"
 }
-array(0) {
+array(9) {
+  [0]=>
+  unicode(3) "one"
+  [1]=>
+  int(6)
+  [u""]=>
+  unicode(5) "blank"
+  [2]=>
+  unicode(5) "float"
+  [u"F"]=>
+  unicode(3) "FFF"
+  [u"blank"]=>
+  unicode(0) ""
+  [3]=>
+  float(3.7)
+  [4]=>
+  unicode(4) "Five"
+  [5]=>
+  float(8.6)
 }
 array(6) {
   [0]=>
@@ -2395,7 +3285,27 @@
   [1]=>
   int(6)
 }
-array(0) {
+array(10) {
+  [u"f"]=>
+  unicode(3) "fff"
+  [0]=>
+  unicode(3) "one"
+  [1]=>
+  int(6)
+  [u""]=>
+  unicode(5) "blank"
+  [2]=>
+  unicode(5) "float"
+  [u"F"]=>
+  unicode(3) "FFF"
+  [u"blank"]=>
+  unicode(0) ""
+  [3]=>
+  float(3.7)
+  [4]=>
+  unicode(4) "Five"
+  [5]=>
+  float(8.6)
 }
 array(7) {
   [u"f"]=>
@@ -2419,7 +3329,11 @@
   [1]=>
   float(8.6)
 }
-array(0) {
+array(2) {
+  [0]=>
+  unicode(4) "Five"
+  [1]=>
+  float(8.6)
 }
 array(0) {
 }
@@ -2433,7 +3347,25 @@
   [u""]=>
   unicode(5) "blank"
 }
-array(0) {
+array(9) {
+  [1]=>
+  unicode(3) "one"
+  [4]=>
+  int(6)
+  [u""]=>
+  unicode(5) "blank"
+  [2]=>
+  unicode(5) "float"
+  [u"F"]=>
+  unicode(3) "FFF"
+  [u"blank"]=>
+  unicode(0) ""
+  [3]=>
+  float(3.7)
+  [5]=>
+  unicode(4) "Five"
+  [6]=>
+  float(8.6)
 }
 array(6) {
   [1]=>
@@ -2457,7 +3389,27 @@
   [4]=>
   int(6)
 }
-array(0) {
+array(10) {
+  [u"f"]=>
+  unicode(3) "fff"
+  [1]=>
+  unicode(3) "one"
+  [4]=>
+  int(6)
+  [u""]=>
+  unicode(5) "blank"
+  [2]=>
+  unicode(5) "float"
+  [u"F"]=>
+  unicode(3) "FFF"
+  [u"blank"]=>
+  unicode(0) ""
+  [3]=>
+  float(3.7)
+  [5]=>
+  unicode(4) "Five"
+  [6]=>
+  float(8.6)
 }
 array(7) {
   [u"f"]=>
@@ -2481,7 +3433,11 @@
   [6]=>
   float(8.6)
 }
-array(0) {
+array(2) {
+  [5]=>
+  unicode(4) "Five"
+  [6]=>
+  float(8.6)
 }
 array(0) {
 }
@@ -2523,7 +3479,13 @@
   [2]=>
   unicode(2) "45"
 }
-array(0) {
+array(3) {
+  [0]=>
+  unicode(4) "name"
+  [1]=>
+  unicode(3) "age"
+  [2]=>
+  unicode(2) "45"
 }
 array(0) {
 }
@@ -2535,7 +3497,15 @@
   [2]=>
   unicode(3) "age"
 }
-array(0) {
+array(4) {
+  [0]=>
+  int(12)
+  [1]=>
+  unicode(4) "name"
+  [2]=>
+  unicode(3) "age"
+  [3]=>
+  unicode(2) "45"
 }
 array(1) {
   [0]=>
@@ -2547,7 +3517,11 @@
   [1]=>
   unicode(2) "45"
 }
-array(0) {
+array(2) {
+  [0]=>
+  unicode(3) "age"
+  [1]=>
+  unicode(2) "45"
 }
 array(0) {
 }
@@ -2561,7 +3535,13 @@
   [3]=>
   unicode(2) "45"
 }
-array(0) {
+array(3) {
+  [1]=>
+  unicode(4) "name"
+  [2]=>
+  unicode(3) "age"
+  [3]=>
+  unicode(2) "45"
 }
 array(0) {
 }
@@ -2573,7 +3553,15 @@
   [2]=>
   unicode(3) "age"
 }
-array(0) {
+array(4) {
+  [0]=>
+  int(12)
+  [1]=>
+  unicode(4) "name"
+  [2]=>
+  unicode(3) "age"
+  [3]=>
+  unicode(2) "45"
 }
 array(1) {
   [0]=>
@@ -2585,7 +3573,11 @@
   [3]=>
   unicode(2) "45"
 }
-array(0) {
+array(2) {
+  [2]=>
+  unicode(3) "age"
+  [3]=>
+  unicode(2) "45"
 }
 array(0) {
 }
@@ -2676,7 +3668,23 @@
   array(0) {
   }
 }
-array(0) {
+array(2) {
+  [0]=>
+  array(5) {
+    [0]=>
+    int(10)
+    [1]=>
+    int(20)
+    [2]=>
+    int(30)
+    [3]=>
+    int(40)
+    [4]=>
+    int(50)
+  }
+  [1]=>
+  array(0) {
+  }
 }
 array(0) {
 }
@@ -2707,7 +3715,32 @@
   array(0) {
   }
 }
-array(0) {
+array(3) {
+  [0]=>
+  array(3) {
+    [0]=>
+    unicode(3) "oNe"
+    [1]=>
+    unicode(3) "tWo"
+    [2]=>
+    int(4)
+  }
+  [1]=>
+  array(5) {
+    [0]=>
+    int(10)
+    [1]=>
+    int(20)
+    [2]=>
+    int(30)
+    [3]=>
+    int(40)
+    [4]=>
+    int(50)
+  }
+  [2]=>
+  array(0) {
+  }
 }
 array(0) {
 }
@@ -2729,7 +3762,23 @@
   array(0) {
   }
 }
-array(0) {
+array(2) {
+  [0]=>
+  array(5) {
+    [0]=>
+    int(10)
+    [1]=>
+    int(20)
+    [2]=>
+    int(30)
+    [3]=>
+    int(40)
+    [4]=>
+    int(50)
+  }
+  [1]=>
+  array(0) {
+  }
 }
 array(0) {
 }
@@ -2753,7 +3802,23 @@
   array(0) {
   }
 }
-array(0) {
+array(2) {
+  [1]=>
+  array(5) {
+    [0]=>
+    int(10)
+    [1]=>
+    int(20)
+    [2]=>
+    int(30)
+    [3]=>
+    int(40)
+    [4]=>
+    int(50)
+  }
+  [2]=>
+  array(0) {
+  }
 }
 array(0) {
 }
@@ -2784,7 +3849,32 @@
   array(0) {
   }
 }
-array(0) {
+array(3) {
+  [0]=>
+  array(3) {
+    [0]=>
+    unicode(3) "oNe"
+    [1]=>
+    unicode(3) "tWo"
+    [2]=>
+    int(4)
+  }
+  [1]=>
+  array(5) {
+    [0]=>
+    int(10)
+    [1]=>
+    int(20)
+    [2]=>
+    int(30)
+    [3]=>
+    int(40)
+    [4]=>
+    int(50)
+  }
+  [2]=>
+  array(0) {
+  }
 }
 array(0) {
 }
@@ -2806,7 +3896,23 @@
   array(0) {
   }
 }
-array(0) {
+array(2) {
+  [1]=>
+  array(5) {
+    [0]=>
+    int(10)
+    [1]=>
+    int(20)
+    [2]=>
+    int(30)
+    [3]=>
+    int(40)
+    [4]=>
+    int(50)
+  }
+  [2]=>
+  array(0) {
+  }
 }
 array(0) {
 }

http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/array/bug43541.phpt?view=markup&rev=1.1
Index: php-src/ext/standard/tests/array/bug43541.phpt
+++ php-src/ext/standard/tests/array/bug43541.phpt
--TEST--
Bug #43541 (length parameter omitted or not does not work when casted to float)
--FILE--
<?php
$arr = array(1, 2, 3, 4, 5, 6);

var_dump(array_slice($arr, 0, (float)2));
var_dump(array_slice($arr, 0, (int)2));
?>
--EXPECT--
array(2) {
  [0]=>
  int(1)
  [1]=>
  int(2)
}
array(2) {
  [0]=>
  int(1)
  [1]=>
  int(2)
}
--UEXPECT--
array(2) {
  [0]=>
  int(1)
  [1]=>
  int(2)
}
array(2) {
  [0]=>
  int(1)
  [1]=>
  int(2)
}

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to