PHP用于节约的长整数

PHP用于节约的长整数,php,long-integer,thrift,Php,Long Integer,Thrift,我的Thrift服务希望收到一个以毫秒为单位表示时间戳的长整数,但是来自PHP,我知道PHP Thrift应该自动将我的PHP类型转换为Thrift类型,但是它希望长整数使用哪种PHP类型?我认为我的计算机是64位的,但因为我认为PHP整数的长度取决于平台,所以我不想让我的整数依赖于平台 我目前正在获取microtime()并乘以1000,然后转换为整数。这是使用PHP和thrift long ints的“正确”方法吗?也许你应该使用字符串类型的id,就像twitter一样:你是对的 整数的大小

我的Thrift服务希望收到一个以毫秒为单位表示时间戳的长整数,但是来自PHP,我知道PHP Thrift应该自动将我的PHP类型转换为Thrift类型,但是它希望长整数使用哪种PHP类型?我认为我的计算机是64位的,但因为我认为PHP整数的长度取决于平台,所以我不想让我的整数依赖于平台


我目前正在获取microtime()并乘以1000,然后转换为整数。这是使用PHP和thrift long ints的“正确”方法吗?

也许你应该使用字符串类型的id,就像twitter一样:

你是对的

整数的大小取决于平台,尽管通常的最大值约为20亿(即32位有符号)。64位平台的最大值通常约为9E18。PHP不支持无符号整数。整数大小可以使用常量PHP_INT_size确定,最大值可以使用自PHP 4.4.0和PHP 5.0.5以来的常量PHP_INT_MAX确定

如果使用
microtime()
,则无需将其除以1000。它的浮点数,你可能想把它乘以1000

您可以使用字符串类型将其作为数字进行计算。我想字符串可以与任何其他东西进行通信


如果乘以1000,您甚至不需要
BCMath
。只需从
microtime(true)
(或
microtime
中的空格)的字符串表示形式中删除逗号即可。

请参考以下内容:不完全是我的问题。节俭会神奇地将类型转换为节俭类型,但我不知道它愿意转换哪些类型。正如我所说,我真的不想指望我有64位体系结构。为什么它必须是一个整数?字符串怎么了?你是如何与节俭沟通的?是通过HTTP还是有一些PHP扩展可以让您通过其他协议与之通信(我不知道Thrift是什么,google提供Apache Thrift)?如果你所要做的只是传递一个与PHP没有任何关系的数字,从某种意义上说,PHP使用它进行计算,那么我认为没有理由在PHP中强制使用类型[我正在做的工作需要长整数有几个原因——其中一个原因是,我们通过生成一个随机的长整数来获得概率唯一性,这对于较小的数字来说不太可能是唯一的。长话短说,我需要php中的长整数。此外,接口是由其他人定义的,所以我不能只使用字符串。我是我可以改变它,但是我也必须改变所有挂在它上面的twitter代码,这将是一件痛苦的事情。很好,我乘以1000,我改变了我的问题来反映这一点。我想给你奖金,但你的回答似乎没有解决我的问题关于Thrift的问题。你知道php Thrift希望长整数如何工作吗?@nnythm,对不起,我不能添加任何内容