2012-07-11 2 views
9

私の倹約サービスは、ミリ秒単位でタイムスタンプを表すLong型の整数を受け取ることを期待していますが、私はPHP倹約が自動的に私のPHP型を倹約型に変えますが、長い整数を期待していますか?私のコンピュータは64ビットだと思いますが、PHPの整数の長さはプラットフォームに依存していると思うので、実際には整数に応じてプラットフォームに依存する長さに依存したくありません。倹約のためのPHPの長整数

私は現在、microtime()を取得して1000を掛けてから整数に変換しています。これはPHP &のリトルロングintsで動作する "正しい"方法ですか?

+0

の文字列表現からカンマを削除してください:http://stackoverflow.com/questions/864058/how-to-have-64-bit-integer-on-php –

+0

正確には私の質問ではありません。 Thriftは魔法のように型を倹約型に変換しますが、どの型を変換するのか分かりません。私が言ったように、私は64ビットアーキテクチャを望んでいるとは本当に頼りにしたくありません。 – nnythm

+0

なぜ整数でなければならないのですか?文字列の何が問題ですか?あなたは倹約とどのようにコミュニケーションしていますか? HTTPを介して、またはいくつかの他のプロトコルを介して話すことができるいくつかのPHP拡張機能があります(私はThriftが何であるかわかりません、googleはApache Thriftを生成します)。私はPHP内で型を強制する理由は見当たりません。あなたがしなければならないことは、PHPが計算とは何の関係もない数値を渡すことだけです。 –

答えて

1

たぶん、あなたはツイッターなどの文字列型のIDを使用する必要があります:あなたは正しいですhttps://dev.twitter.com/docs/twitter-ids-json-and-snowflake

+0

私は倹約した長い時間を使用するツイッターサービスに夢中です。私はそれを変更することができますが、私はまた、それにフックするすべてのツイッターコードを変更する必要がありますが、それは痛みになります。 – nnythm

7

約2億円の最大値であるが、整数のサイズは、プラットフォームに依存しています通常の値(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

あなたは1000、そのフロートによってそれを分割する必要はありませんmicrotime()を使用している場合、あなたはそれが数字としてcalclulateためBC Mathを使用することができます1000

を掛けする場合があり、文字列型を使用します。私は文字列が他のものと通信することはOKだと思います。

1000を掛けた場合、さらにBCMathは必要ありません。 microtime(true)(またはスペースはmicrotimeから)

+0

良いコール、私は1000倍、私はこれを反映するために私の質問を変更しました。 – nnythm

+0

私はあなたに賞金をあげたいと思いますが、あなたの答えは、スリフトに関係する私の質問の一部には対処していないようです。 php thriftがlong整数をどのように動作させるかについて知っていますか? – nnythm

+0

@nnythm、申し訳ありませんが、何も追加できません – RiaD

関連する問題