ホームページ > バックエンド開発 > PHPの問題 > PHPを長整数型に設定

PHPを長整数型に設定

王林
リリース: 2023-05-06 18:36:07
オリジナル
788 人が閲覧しました

PHP は、Web 開発で広く使用されている汎用の高水準プログラミング言語です。 PHP には、整数型が 32 ビット符号付き整数であるというデフォルト設定があります。これは、表現できる最大の整数は 2^31-1、つまり 2147483647 であることを意味します。非常に大きな整数や 32 ビットを超える整数など、大きな数値を処理する必要がある場合は、PHP の整数型を長整数型に設定する必要があります。

PHP を長整数型に設定する必要があるのはなぜですか?

PHP のデフォルトの整数型は、一部のニーズを満たさない場合があります。たとえば、大きな数値の計算を実行する必要がある場合、PHP のデフォルトの整数型では誤った計算結果が返される可能性があります。これは、PHP のデフォルトの整数型が最大 32 ビットの符号付き整数しか表現できないためです。計算結果がこの範囲を超えるとオーバーフローが発生し、正しい計算結果が得られません。

long 整数型を使用すると、オーバーフロー エラーを発生させることなく、32 ビットを超える大きな数値計算や整数計算を実行できます。 PHP の整数型が long に設定されている場合、GMP 関数などの新しい数学関数を使用して大きな数値の計算を実行できます。

PHP を長整数型に設定するにはどうすればよいですか?

PHP を長整数型に設定するには、php.ini ファイルを変更する必要があります。まず、php.ini ファイルの場所を見つける必要があります。 Unix/Linux システムでは、このファイルは通常 /etc/php.ini または /etc/php5.ini にあります。 Windows システムでは、php.ini ファイルは PHP インストール ディレクトリにあります。 php.ini ファイルを開いたら、次の行を検索する必要があります。

; Default value: On
; Development value: Off
; Production value: Off
 
; http://php.net/precision
precision = 14
ログイン後にコピー

この行では、浮動小数点数の精度を設定できます。 PHP を長整数型に設定できるように、「precision」パラメータを -1 に設定する必要があります。変更された最初の行は次のようになります。

; Default value: On
; Development value: Off
; Production value: Off
 
; http://php.net/precision
precision = -1
ログイン後にコピー

変更が完了したら、変更を有効にするために PHP インタープリターを再起動する必要があります。

PHP を長整数型に設定するために、なぜ float precision パラメータを -1 に設定する必要があるのか​​と疑問に思われるかもしれません。これは、本来の目的ではありませんが、精度を 0 に設定すると浮動小数点計算が無効になるためです。一方、精度を 1 に設定すると、PHP は short integer 型に設定されます。

注意事項

PHP で整数型を長整数型に設定すると、すべての整数計算で長整数型が使用されることに注意してください。これにより、特に大きな数値を扱う場合、計算が遅くなります。アプリケーションが少数の大きな数値計算のみを処理する必要がある場合は、PHP を長整数型に設定しないことをお勧めします。

さらに、PHP を長整数型に設定した後、大きな数値の計算を実行するには、PHP の GMP 関数を使用する必要もあります。これらの関数は PHP の公式ドキュメントに記載されており、高精度の計算を実行するための共通インターフェイスを提供します。

結論

PHPの整数型をlong整数型に設定することで、大きな数値計算や32ビットを超える整数計算の問題を解決できます。これにより計算が遅くなる可能性がありますが、大きな数値を扱う必要がある場合は必須です。 PHP の long integer 型の設定は非常に簡単で、php.ini ファイルで浮動小数点の精度を -1 に設定するだけです。ただし、すべての整数計算は長整数型で行われるため、大きな数値の計算を実行するには GMP 関数を使用する必要があることに注意してください。

以上がPHPを長整数型に設定の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート