1--TEST-- 2unpack of template converter (array: string) 3--SKIPIF-- 4<?php 5if (version_compare(PHP_VERSION, '5.2.0') < 0) { 6 echo "skip tests in PHP 5.2 or newer"; 7} 8--FILE-- 9<?php 10if(!extension_loaded('msgpack')) 11{ 12 dl('msgpack.' . PHP_SHLIB_SUFFIX); 13} 14 15//error_reporting(0); 16 17function test($type, $variable, $object, $result = null) 18{ 19 $serialized = msgpack_pack($variable); 20 $unserialized = msgpack_unpack($serialized, $object); 21 22 var_dump($unserialized); 23 if ($result) 24 { 25 echo $unserialized == $result ? 'OK' : 'ERROR', PHP_EOL; 26 } 27 else 28 { 29 echo 'SKIP', PHP_EOL; 30 } 31} 32 33class MyObj 34{ 35 private $data = null; 36 private $priv = "privdata"; 37 public $pdata = null; 38 39 function __construct() 40 { 41 $this->data = "datadata"; 42 } 43} 44 45$obj = new MyObj(); 46$obj->pdata = "pubdata0"; 47 48$obj2 = new MyObj(); 49$obj2->pdata = "pubdata1"; 50 51$ary = array($obj, $obj2); 52 53$tpl = array("MyObj"); 54 55test("object list /w string", $ary, $tpl, $ary); 56 57--EXPECTF-- 58array(2) { 59 [0]=> 60 object(MyObj)#%d (3) { 61 [%r"?data"?:("MyObj":)?private"?%r]=> 62 string(8) "datadata" 63 [%r"?priv"?:("MyObj":)?private"?%r]=> 64 string(8) "privdata" 65 ["pdata"]=> 66 string(8) "pubdata0" 67 } 68 [1]=> 69 object(MyObj)#%d (3) { 70 [%r"?data"?:("MyObj":)?private"?%r]=> 71 string(8) "datadata" 72 [%r"?priv"?:("MyObj":)?private"?%r]=> 73 string(8) "privdata" 74 ["pdata"]=> 75 string(8) "pubdata1" 76 } 77} 78OK 79