PHP は 8 つの基本データ型をサポートします。
4 つのスカラー型:
2 つの複合タイプ:
最後に、2 つの特別なタイプがあります:
booleanデータ型:
値は True または False のみです。他の型がブール型に変換される場合、次の値はFALSE
とみなされます:
FALSE
自体他のすべての値はTRUE
とみなされます (リソースを含む)。
整数データ型:
整数値は、オプションの記号 (- または ) を前に付けて、10 進数、16 進数、または 8 進数の表記で表すことができます。
8 進数は数値の前に0(ゼロ) を付ける必要があることを意味し、16 進数は数値の前に0xを付ける必要があることを意味します。
整数のワード サイズはプラットフォームに依存しますが、通常の最大値は約 20 億 (32 ビット符号付き) です。 PHP は符号なし整数をサポートしていません。整数PHP 4.4.0 以降、値の語長は定数PHP_INT_SIZE
で表すことができます。および PHP 5.0 .5 以降、最大値は定数PHP_INT_MAX
で表すことができます。
指定された数値がintegerの範囲を超える場合、として解釈されます。float。同様に、演算結果がintegerの範囲を超える場合、floatも返されます。
PHP には整数の除算演算子がありません。1/2はfloat0.5を生成します。小数部分はいつでも破棄できます。または、round()関数を使用できます。
値を整数に明示的に変換するには、次を使用します。(int)または(integer)をキャストします。ただし、演算子、関数、またはフロー制御でintegerパラメータが必要な場合、ほとんどの場合、キャストは必要ありません。値は自動的に変換されます。関数intval()を使用して、値を整数型に変換することもできます。
FALSE
は0(ゼロ) を生成し、TRUE
は1(1 つ)。float データ型
浮動小数点数のワード サイズはプラットフォームに依存しますが、通常、最大値は 10 進数 14 桁 (64 ビット IEEE 形式) の精度で 1.8e308 です。
0.1や0.7などの一見単純な小数は、精度を少し損なうことなく内部バイナリ形式に変換できません。これにより、混乱を招く結果が生じる可能性があります。たとえば、floor((0.1 0.7)*10)は通常、期待される8ではなく7を返します。結果の内部表現は実際には7.9と似ているためです。
これは、有限の桁数では特定の小数を正確に表現することが不可能であるという事実に関連しています。たとえば、10 進数の1/3は0.3になります。
したがって、浮動小数点数の結果が最後の桁まで正確であるとは絶対に信じないでください。また、2 つの浮動小数点数が等しいかどうかを比較することも決してしないでください。本当に高い精度が必要な場合は、任意精度の数学関数を使用する必要があります。または、gmp 関数。