* v1.0.0 file copy and created. gwang 2024.9.28
*/ class MsgpackUtil { public $name; public function Test(){ var_dump(nameof($this)); var_dump(nameof( $this->name)); } /** * obj -> bytes * @param mixed $obj * @return string */ public static function encode($obj) { $bytes = \msgpack_pack($obj); return $bytes; } /** * bytes -> obj * @param type $string * @return obj */ public static function decode($string) { $obj = \msgpack_unpack( $string); return $obj; } /** * 研发中..., 想着直接一步到位, 反序列化成目标类型的对象. -by gwang 2017年8月8日 09:49:09 * @param string $str json字符串 * @param mixed $tarType 目标类型 * @return obj */ public static function decode2Object($str, $tarType = null) { $obj = self::decode($str); if ($tarType != null) { $c = 'stdClass'; if (is_string($tarType)) { # 类型名称 $c = $tarType; } else if (is_object($tarType)) { # 目标类型的对象,数据还不能处理 $c = get_class($tarType); } $desObj = new $c; CommUtil::loadObject($obj, $desObj); # 装到目标类型的箱子中 $obj = $desObj; } return $obj; } }