_(int) "4209531264"
_とintval("4209531264")
を試してみましたが、残念なことに、_2147483647
_しかありません(これは32ビットアーキテクチャまたはいくつかのphpの依存関係などが原因であることがわかります)。
正しい結果を返す_"4209531264" + 0
_を思いつきましたが、maxintを超えているので、それが機能しているのを見るのは驚きです。
しかし、本当の質問:これは文字列をlongに変換する「正しい方法」ですか?
編集:
_(float)
_つまり。
コメントありがとう!目を開く!
最終的にどのような値になるかについてあまり詳しくない限り、"number" + 0
は、おそらく「自然な」数値データ型に変換されるため、入力を変換する最良の方法です。
入力に小数部がなく、収まる場合、結果は整数になります(PHP_INT_MAX
)またはそうでない場合はfloat。