#44485 [Opn]: array_splice behaves unexpectedly when given an object as the last argument

From: Date: Thu, 20 Mar 2008 16:35:38 +0000
Subject: #44485 [Opn]: array_splice behaves unexpectedly when given an object as the last argument
References: 1  Groups: php.doc.bugs 
Request: Send a blank email to doc-bugs+get-618@lists.php.net to get a copy of this message
ID: 44485 User updated by: computerlov at yahoo dot com Reported By: computerlov at yahoo dot com Status: Open Bug Type: Documentation problem Operating System: windows xp PHP Version: 5.2.5 New Comment: Just checked it on my machine. worked exactly as expected. Instead of passing the $object as a parameter to array_splice, I passed array($object). Then the object itself replaced the others in the array and not its data members. Thank you. Previous Comments: ------------------------------------------------------------------------ [2008-03-20 14:02:23] felipe@php.net Yes, exactly. ------------------------------------------------------------------------ [2008-03-20 13:44:36] computerlov at yahoo dot com so If i do this $arr = array($oSomeObject); array_splice(..., 0, 2, $arr); will it work as I intended? I'll check that later. ------------------------------------------------------------------------ [2008-03-20 11:02:39] felipe@php.net The documentation describe the fourth parameter as array, but the correct is mixed. Reclassified as Documentation problem. ------------------------------------------------------------------------ [2008-03-20 10:58:03] felipe@php.net > I just noticed something you did wrong when reproducing the bug: > the error is on the array we splice and not the output. Oh, ok! > instead of getting an array of 9 objects, you get > an array of 8 objects and all the data members of > CSomeClass in the array. The data of 'replacement' parameter is converted to array, then, the object is converted to an array of their properties. This is expected. Thanks. ------------------------------------------------------------------------ [2008-03-19 23:01:16] computerlov at yahoo dot com I just noticed something you did wrong when reproducing the bug: the error is on the array we splice and not the output. for example: $arrInput = {$obj1, $obj2......} $arrOutput = array_splice($arrInput, .......); the problem is in $arrInput (which is passed by reference to array_splice) and not $arrOutput. ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/44485 -- Edit this bug report at http://bugs.php.net/?id=44485&edit=1

« previous php.doc.bugs (#618) next »