1--TEST-- 2Object-Array test 3--SKIPIF-- 4--FILE-- 5<?php 6if(!extension_loaded('msgpack')) { 7 dl('msgpack.' . PHP_SHLIB_SUFFIX); 8} 9 10function test($type, $variable, $test) { 11 $serialized = msgpack_serialize($variable); 12 $unserialized = msgpack_unserialize($serialized); 13 14 echo $type, PHP_EOL; 15 echo bin2hex($serialized), PHP_EOL; 16 var_dump($unserialized); 17 echo $test || $unserialized == $variable ? 'OK' : 'ERROR', PHP_EOL; 18} 19 20class Obj { 21 var $a; 22 var $b; 23 24 function __construct($a, $b) { 25 $this->a = $a; 26 $this->b = $b; 27 } 28} 29 30$o = array(new Obj(1, 2), new Obj(3, 4)); 31 32 33test('object', $o, false); 34?> 35--EXPECTF-- 36object 379283c0a34f626aa16101a1620283c0a34f626aa16103a16204 38array(2) { 39 [0]=> 40 object(Obj)#%d (2) { 41 ["a"]=> 42 int(1) 43 ["b"]=> 44 int(2) 45 } 46 [1]=> 47 object(Obj)#%d (2) { 48 ["a"]=> 49 int(3) 50 ["b"]=> 51 int(4) 52 } 53} 54OK 55