#44485 [Opn]: array_splice behaves unexpectedly when given an object as the last argument
| From: | computerlov at yahoo dot com | 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