php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Doc Bug #24670 defining __call requires __sleep for serialize/session
Submitted: 2003-07-16 01:07 UTC Modified: 2005-05-30 10:04 UTC
Votes:6
Avg. Score:4.3 ± 0.9
Reproduced:6 of 6 (100.0%)
Same Version:4 (66.7%)
Same OS:1 (16.7%)
From: tater at potatoe dot com Assigned: dmitry (profile)
Status: Not a bug Package: Documentation problem
PHP Version: Irrelevant OS: OS X 10.2
Private report: No CVE-ID: None
View Add Comment Developer Edit
Anyone can comment on a bug. Have a simpler test case? Does it work for you on a different platform? Let us know!
Just going to say 'Me too!'? Don't clutter the database with that please !
Your email address:
MUST BE VALID
Solve the problem:
40 - 23 = ?
Subscribe to this entry?

 
 [2003-07-16 01:07 UTC] tater at potatoe dot com
Description:
------------
If you create a __call() method for a class, and then try to serialize it yourself, or store an object of that class in $_SESSION, you need to either explicitly define a __sleep() method as well, or make sure that __call() will respond appropriately. Otherwise serialize() will complain. It seems unlikely that this is a bug, though I suppose it might be a feature request. So it should just be spelled out in the documentation for __call() when that gets written.

Reproduce code:
---------------
class foo { function __call() { return; } }
$a = new foo;
serialize($a);

Expected result:
----------------
n/a

Actual result:
--------------
n/a

Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2004-05-17 23:28 UTC] magicking89 at hotmail dot com
I have the same problem with PHP5 RC2 on Mac Os X 10.2 It's a real problem because I must to close socket with __sleep but it doesn't work correctly...
 [2005-04-01 13:52 UTC] maka3d at yahoo dot com dot br
Does there is a workaround to this?
I did some tests but didn't work?
I thought it would be fixed until 5.0.4
 [2005-04-14 10:23 UTC] vrana@php.net
It seems that classes with __call or __sleep (!) methods simply can't be serialized (serialize() returns "N;" for them). If you can reproduce it, please change the Category of this bug to Zend Engine 2 problem.

And fill in your PHP Version, please.
 [2005-04-22 01:00 UTC] phpdoc at lists dot php dot net
No feedback was provided for this bug for over a week, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".
 [2005-05-30 10:02 UTC] lsmith@php.net
this seems to be a dupe of #30791
 [2005-05-30 10:04 UTC] lsmith@php.net
dupes are marked as bogus, and #30791 seems to be more detailed.
 
PHP Copyright © 2001-2021 The PHP Group
All rights reserved.
Last updated: Tue Oct 19 06:03:36 2021 UTC