I am having a difficult time getting object serialization to work properly. According to the documentation, I need to return an array of the variable names I want to serialize from the __sleep
function. I did this, but as you can see from the first line of the output, my 50 is nowhere to be found. And when I attempt to unserialize that, the resulting object also does not have the correct value in $myid
header('Content-Type: text/plain');
class Test {
public $myid;
function __contstruct($id) {
$this->myid = $id;
}
function __sleep() {
return array('myid');
}
}
$test = new Test(50);
$serialized = serialize($test);
echo "serialized to: $serialized\n";
$test2 = unserialize($serialized);
echo "this should be 50: ";
var_dump($test2->myid);
Here is the output:
serialized to: O:4:"Test":1:{s:4:"myid";N;}
this should be 50: NULL
I tried removing the __sleep
function from the class, but I get the same result. Whats going on here??