1--TEST-- 2unpack of template converter: class unpacker (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 $msgpack = new MessagePack(); 20 21 $serialized = $msgpack->pack($variable); 22 23 $unserialized = $msgpack->unpack($serialized, $object); 24 25 var_dump($unserialized); 26 if ($result) 27 { 28 echo $unserialized == $result ? 'OK' : 'ERROR', PHP_EOL; 29 } 30 else 31 { 32 echo 'SKIP', PHP_EOL; 33 } 34} 35 36class MyObj 37{ 38 private $data = null; 39 private $priv = "privdata"; 40 public $pdata = null; 41 42 function __construct() 43 { 44 $this->data = "datadata"; 45 } 46} 47 48$obj = new MyObj(); 49$obj->pdata = "pubdata0"; 50 51$obj2 = new MyObj(); 52$obj2->pdata = "pubdata1"; 53 54$ary = array($obj, $obj2); 55 56$tpl = array("MyObj"); 57 58test("object list /w string", $ary, $tpl, $ary); 59 60--EXPECTF-- 61array(2) { 62 [0]=> 63 object(MyObj)#%d (3) { 64 [%r"?data"?:("MyObj":)?private"?%r]=> 65 string(8) "datadata" 66 [%r"?priv"?:("MyObj":)?private"?%r]=> 67 string(8) "privdata" 68 ["pdata"]=> 69 string(8) "pubdata0" 70 } 71 [1]=> 72 object(MyObj)#%d (3) { 73 [%r"?data"?:("MyObj":)?private"?%r]=> 74 string(8) "datadata" 75 [%r"?priv"?:("MyObj":)?private"?%r]=> 76 string(8) "privdata" 77 ["pdata"]=> 78 string(8) "pubdata1" 79 } 80} 81OK 82