nny*_*thm 9 php thrift long-integer
我的Thrift服务期望接收一个Long整数,表示以毫秒为单位的时间戳,但是来自PHP,我知道PHP thrift应该自动将我的PHP类型转换为thrift类型,但是对于Long整数,它应该使用哪种PHP类型?我认为我的计算机是64位的,但是因为我认为PHP整数的长度与平台有关,所以我真的不想依赖于整数的平台相关长度.
我目前正在抓取microtime()并乘以1000,然后转换为整数.这是使用PHP&thrift long int的"正确"方法吗?
你是对的,
整数的大小取决于平台,尽管最大值约为20亿是通常的值(32位有符号).64位平台的最大值通常约为9E18.PHP不支持无符号整数.整数大小可以使用常量PHP_INT_SIZE确定,最大值可以使用自PHP 4.4.0和PHP 5.0.5以来的常量PHP_INT_MAX.
http://www.php.net/manual/en/language.types.integer.php
如果你使用microtime()你不需要将它除以1000.它的浮动,你可能想要乘以1000.
您可以使用BC Math将其计算为数字,使用字符串类型.我猜字符串可以与任何其他东西进行通信.
如果乘以1000,您甚至不需要BCMath.只需从字符串表示microtime(true)(或空格microtime)中删除逗号