--TEST-- Object Serializable interface --SKIPIF-- a = $a; $this->b = $b; } public function serialize() { return pack('NN', $this->a, $this->b); } public function unserialize($serialized) { $tmp = unpack('N*', $serialized); $this->__construct($tmp[1], $tmp[2]); } public function __serialize() { return [$this->serialize()]; } public function __unserialize($serialized) { return $this->unserialize($serialized[0]); } } $o = new Obj(1, 2); test('object', $o, false); ?> --EXPECTF-- object 82c0a34f626ac091a80000000100000002 object(Obj)#%d (2) { ["a"]=> int(1) ["b"]=> int(2) } OK