php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #59856 apc_fetch() doesn't set the array pointer to the first element
Submitted: 2011-07-18 10:36 UTC Modified: 2011-07-19 01:03 UTC
From: tyrael@php.net Assigned:
Status: Closed Package: APC (PECL)
PHP Version: 5.3.6 OS:
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: tyrael@php.net
New email:
PHP Version: OS:

 

 [2011-07-18 10:36 UTC] tyrael@php.net
Description:
------------
yesterday I noticed that the following code isn't working if 
the $versions array is coming from apc (apc_fetch), as the 
internal pointer for that array isn't at the first element.
I think that we should set that, as unserialize, json_decode, 
and every other method that I can came up with sets this 
correctly.


Reproduce code:
---------------
<?php
$foo = array('bar', 'baz');
$foo2 = unserialize(serialize($foo));
$foo3 = json_decode(json_encode($foo));
apc_store('test', $foo);
$foo4 = apc_fetch('test');

var_dump(current($foo));
var_dump(current($foo2));
var_dump(current($foo3));
var_dump(current($foo4));


Expected result:
----------------
string(3) "bar"
string(3) "bar"
string(3) "bar"
string(3) "bar"

Actual result:
--------------
string(3) "bar"
string(3) "bar"
string(3) "bar"
bool(false)


Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2011-07-18 11:30 UTC] gopalv@php.net
For a stop-gap fix, you can try apc.serializer = php;

I will look into this in a bit.
 [2011-07-18 12:42 UTC] tyra3l at gmail dot com
apc.serializer = php
fixes the problem for me

it also works if I cast the $foo4 to an array (which was a 
little bit of a suprise, as I didn't expected any change if 
I cast something to the same type)

I also noticed that my description was a little bit messy, 
originally I planned to use the original code example as is:
http://svn.php.net/viewvc/web/php-
bugs/trunk/include/functions.php?
r1=313350&r2=313349&pathrev=313350
then I came up with a better example, but forgot to fix my 
description about the $versions variable.
 [2011-07-19 01:03 UTC] gopalv@php.net
fixed in svn

http://news.php.net/php.pecl.cvs/15989
 
PHP Copyright © 2001-2025 The PHP Group
All rights reserved.
Last updated: Thu Jul 03 21:01:34 2025 UTC