PHP长整数用于节俭

时间:2012-07-11 14:10:15

标签: php long-integer thrift

My Thrift服务期望接收一个表示时间戳的长整数(以毫秒为单位),但是来自PHP,我知道PHP thrift应该自动将我的PHP类型转换为thrift类型,但是对于Long整数,它应该使用哪种PHP类型?我认为我的计算机是64位的,但是因为我认为PHP整数的长度与平台有关,所以我真的不想依赖于整数的平台相关长度。

我正在抓取microtime()并乘以1000,然后转换为整数。这是使用PHP和PHP的“正确”方式吗?节俭的长期投资?

2 个答案:

答案 0 :(得分:7)

你是对的,

  

整数的大小取决于平台,尽管最大值约为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

的字符串表示中删除逗号即可

答案 1 :(得分:1)

也许你应该使用字符串类型的id,就像twitter:https://dev.twitter.com/docs/twitter-ids-json-and-snowflake

一样