| 
        php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login | 
 PatchesPull Requests
Pull requests: 
 HistoryAllCommentsChangesGit/SVN commits             
             [2016-12-16 14:47 UTC] cmb@php.net
 
-Status: Open
+Status: Verified
  [2016-12-16 14:47 UTC] cmb@php.net
  [2016-12-20 23:19 UTC] dave at mudsite dot com
  [2016-12-21 20:20 UTC] nikic@php.net
  [2016-12-21 20:20 UTC] nikic@php.net
 
-Status: Verified
+Status: Closed
  | 
    |||||||||||||||||||||||||||
            
                 
                Copyright © 2001-2025 The PHP GroupAll rights reserved.  | 
        Last updated: Tue Nov 04 13:00:02 2025 UTC | 
Description: ------------ Internal pointer of unserialized array does not advance correctly. Test script: --------------- <?php function iterate($current, $queue, $result = null) { if (!$current) { return $result; } return iterate(step($queue), $queue, $current); } function step(&$queue) { return next($queue); } function start($queue) { return current($queue); } function traverse($queue) { return iterate(start($queue), $queue); } $queue = ['foo', 'bar', 'baz']; $queue = unserialize(serialize($queue)); echo traverse($queue); //baz Expected result: ---------------- It should output 'baz'. Actual result: -------------- Recursion error. The internal pointer is stuck on the second item and does not move forward. It works in 5.6 and when $queue is a reference in the signature of the iterate function. Seems inconsistent.