[php-src] Issue #14402: SplPriorityQueue does not support serialization

From: Date: Sat, 01 Jun 2024 08:40:21 +0000
Subject: [php-src] Issue #14402: SplPriorityQueue does not support serialization
Groups: php.bugs 
Request: Send a blank email to php-bugs+get-247007@lists.php.net to get a copy of this message
Issue: https://github.com/php/php-src/issues/14402 Author: nikic ### Description The following code: ```php <?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 https://github.com/krakjoe/apcu/issues/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_

« previous php.bugs (#247007) next »