Open
Description
Description
The following code:
<?php
$bar = new \SplPriorityQueue();
$bar->insert('a', 1);
var_dump($bar);
var_dump(unserialize(serialize($bar)));
Resulted in this output:
object(SplPriorityQueue)#1 (3) {
["flags":"SplPriorityQueue":private]=>
int(1)
["isCorrupted":"SplPriorityQueue":private]=>
bool(false)
["heap":"SplPriorityQueue":private]=>
array(1) {
[0]=>
array(2) {
["data"]=>
string(1) "a"
["priority"]=>
int(1)
}
}
}
object(SplPriorityQueue)#2 (3) {
["flags":"SplPriorityQueue":private]=>
int(1)
["isCorrupted":"SplPriorityQueue":private]=>
bool(false)
["heap":"SplPriorityQueue":private]=>
array(0) {
}
}
But I expected this output instead:
object(SplPriorityQueue)#1 (3) {
["flags":"SplPriorityQueue":private]=>
int(1)
["isCorrupted":"SplPriorityQueue":private]=>
bool(false)
["heap":"SplPriorityQueue":private]=>
array(1) {
[0]=>
array(2) {
["data"]=>
string(1) "a"
["priority"]=>
int(1)
}
}
}
object(SplPriorityQueue)#2 (3) {
["flags":"SplPriorityQueue":private]=>
int(1)
["isCorrupted":"SplPriorityQueue":private]=>
bool(false)
["heap":"SplPriorityQueue":private]=>
array(1) {
[0]=>
array(2) {
["data"]=>
string(1) "a"
["priority"]=>
int(1)
}
}
}
Disclaimer: I don't have any need for this myself, just cross-posting an issue originally reported against apcu in krakjoe/apcu#505. It does seem weird that an SPL container cannot be serialized (or rather, loses data on serialization) though.
PHP Version
All
Operating System
No response