hprose 1.0 内部数据标准

方法的描述  {
    // 请求调用格式
    'C'.writeString('method1').'a'.count($params).'{'.'m'.count($params)'{'. xxx .'}'.'}'.'z'
    
    // 请求返回格式
    'R'.serialize($result).'z'
}

// 数据类型的描述
serialize == {
    null == {
        writeNull() --->  'n'
    }
    
    is_scalar == {
        writeNaN() --->  'N'
        writeInteger(10) --->  'i10;'
        writeLong(2000) --->  'l2000;'
        writeBoolean(true) --->  't'  或者  'f'
        writeDouble(3.6) --->  'd000;'
        writeDouble(正无穷大、负无穷大) --->  'I+' 或者 'I-'
        writeEmpty() --->  'e'
        writeUTF8Char($val) --->  'u'.''
        writeStringWithRef($val) --->  writeString($val)
        writeBytes($bytes)  --->  'b'.strlen($bytes).'"'.$bytes.'"'
        writeBytesWithRef($val)  --->  writeBytes($bytes);
        writeString($str) --->  's'.(strlen(iconv('UTF-8', 'UTF-16LE', $str)) >> 1).'"'.$str.'"'
    }

is_array == {
        writeArray($array) --->  'a'.count($array)'{'. xxx .'}'
        writeAssocArray($map) --->  'm'.count($map)'{'. xxx .'}'
    }

is_object == {
        writeDateTime($datetime) --->  $datetime->format('\DYmd\THis.u\Z')
        writeMapWithRef($val) --->   writeMap($val)  --->  'm'.count($val)'{'. xxx .'}'
        writeListWithRef($val) --->  writeList($val) --->  'a'.count($val)'{'. xxx .'}'
        writeStdClassWithRef($val) --->  writeStdClass($obj)  --->  'm'.count($val)'{'. xxx .'}'
        writeObjectWithRef($val) --->  writeObject($obj)  --->  {
            $class = get_class($obj); // 'Dir1\Dir2\Clazz1';
            $alias = 'Dir1_Dir2_Clazz1'
            ---> 'c'.(strlen(iconv('UTF-8', 'UTF-16LE', $alias)) >> 1).'"'.$alias.'"'.count($props).'{'.writeString(strtolower($prop[0]) . substr($prop, 1)).'}'.'o'.'0'.'{'.$prop->getValue($obj).'}'
        }
    }
}

最新文章

  1. IO(三)----序列流
  2. Linux中profile文件详解(转)
  3. 如何真正提高ASP.NET网站的性能
  4. 2012年第三届蓝桥杯C/C++程序设计本科B组决赛
  5. jsp内置对象和el表达式
  6. 使用Sass优雅并高效的实现CSS中的垂直水平居中(附带Flex布局,CSS3+SASS完美版)
  7. Alpha、Beta、RC、GA版本的区别
  8. forward_list例子
  9. (转)Spring读书笔记-----Spring的Bean之Bean的基本概念
  10. WPF XAML之bing使用StringFormat(转)
  11. SocketAsyncEventArgs使用解说
  12. 【原创】leetCodeOj --- Sliding Window Maximum 解题报告
  13. AES加密解密算法
  14. C#版 - Leetcode 191. Number of 1 Bits-题解
  15. JavaSE_坚持读源码_ArrayList对象_Java1.7
  16. 内部排序->交换排序->起泡排序
  17. p1110 报表统计(FHQ-TREAP/TREAP)
  18. php求取时间范围并传入数据库,页面上显示几天几月几年
  19. ajax传递数组给controller的实现方法和坑
  20. CronExpression

热门文章

  1. win10卸载更新+关闭自动更新的方法
  2. Linux中vim编辑器常用操作技巧
  3. pat1064. Complete Binary Search Tree (30)
  4. 3年,阅读量100万+, Github Star 15000+
  5. [Windows] 一些简单的CMD命令
  6. 一、基础知识 React API 一览
  7. Python接入支付宝进行PC端支付
  8. IIS发布网站出错解决方案
  9. 【Shell脚本学习24】Shell输入输出重定向:Shell Here Document,/dev/null文件
  10. WPF样式学习:ToolBar的使用