web-dev-qa-db-ja.com

PHPで文字列をlong intに変換する適切な方法

_(int) "4209531264"_とintval("4209531264")を試してみましたが、残念なことに、_2147483647_しかありません(これは32ビットアーキテクチャまたはいくつかのphpの依存関係などが原因であることがわかります)。

正しい結果を返す_"4209531264" + 0_を思いつきましたが、maxintを超えているので、それが機能しているのを見るのは驚きです。

しかし、本当の質問:これは文字列をlongに変換する「正しい方法」ですか?

編集:

_(float)_つまり。

コメントありがとう!目を開く!

17

最終的にどのような値になるかについてあまり詳しくない限り、"number" + 0は、おそらく「自然な」数値データ型に変換されるため、入力を変換する最良の方法です。

入力に小数部がなく、収まる場合、結果は整数になります(PHP_INT_MAX)またはそうでない場合はfloat。

15
Jon