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