#42941 [Opn->Csd]: array_slice resets the current array position

From: Date: Tue, 19 Feb 2008 01:01:14 +0000
Subject: #42941 [Opn->Csd]: array_slice resets the current array position
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-122440@lists.php.net to get a copy of this message
ID: 42941 Updated by: felipe@php.net Reported By: jonas at skubic dot se -Status: Open +Status: Closed Bug Type: Feature/Change Request Operating System: Linux PHP Version: 5CVS-2007-10-12 (snap) Previous Comments: ------------------------------------------------------------------------ [2007-10-13 20:48:03] felipensp at gmail dot com PHP 5.2.5-dev (cli) (built: Oct 13 2007 17:24:05) felipe@bl4ck:~/public_html$ php test.php Array ( [0] => 2 [1] => 3 [2] => 4 [3] => 5 [4] => 6 [5] => 7 [6] => 8 [7] => 9 ) ------------------------------------------------------------------------ [2007-10-12 08:47:31] jonas at skubic dot se Description: ------------ array_slice seems to be resetting the current array position *before* processing the offset parameter. This makes it impossible to directly use expressions that use the array position for the offset parameter. It would be mildly useful and less surprising if the parameters were evaluated before altering the array. Reproduce code: --------------- $a = range(0, 9); next($a); next($a); $b = array_slice($a, key($a)); print_r($b); Expected result: ---------------- Array ( [0] => 2 [1] => 3 [2] => 4 [3] => 5 [4] => 6 [5] => 7 [6] => 8 [7] => 9 ) Actual result: -------------- Array ( [0] => 0 [1] => 1 [2] => 2 [3] => 3 [4] => 4 [5] => 5 [6] => 6 [7] => 7 [8] => 8 [9] => 9 ) ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=42941&edit=1

« previous php.bugs (#122440) next »