PHP は 8 つのプリミティブ データ型をサポートします。 4 つのスカラー型: ブール (Boolean)、整数 (integer)、float (浮動小数点型、double とも呼ばれる)、文字列 (string)、2 つの複合型: 配列 (array)、オブジェクト (object)、そして最後に 2 つの特別な型があります。タイプ: resource (リソース) および NULL (タイプなし)。
注: 式の値と型を確認したい場合は、var_dump() 関数を使用します。デバッグ用に人間が判読できる型の表現が必要なだけの場合は、gettype() 関数を使用します。型を確認するには、gettype() を使用せず、is_type 関数を使用します。
PHP は弱い言語なので、== 記号を使用する場合、数値と文字列を比較する場合、または数値の内容を含む文字列を比較する場合、文字列は数値に変換されます。値と比較は数値的に実行されます。このルールは switch ステートメントにも適用されます。 (絶対比較には === を使用してください)
第一オペランドの型 |
第二オペランドの型 |
型変換 |
||
Integer |
Floアットポイントタイプ | 整数を浮動小数点型に変換 |
||
文字列を浮動小数点型に変換すると整数型も変換されます。浮動小数点型に変換されます | 浮動小数点型 |
|||
文字列は浮動小数点型に変換されます |
まとめると、 浮動小数点型 > 整数型 > 文字列 > ブール型
整数型
Float型 <?php $a = 0.1; $b = 0.9; $c = 1; var_dump(($a+$b)==$c);//true var_dump(($c-$b)==$a);//falseprintf("%.20f", $a+$b); // 1.00000000000000000000 printf("%.20f", $c-$b); // 0.09999999999999997780?> ログイン後にコピー この問題は、浮動小数点の計算には精度が伴い、浮動小数点数を2進数に変換すると精度が失われる可能性があるために発生します。 したがって、浮動小数点数が最後の桁まで正確であるとは絶対に信じないでください。また、2 つの浮動小数点数が等しいかどうかを比較しないでください。 本当により高い精度が必要な場合は、任意精度の数学関数を使用する必要があります。 高精度运算的方法如下: bcadd 将两个高精度数字相加 bccomp 比较两个高精度数字,返回-1,0,1 bcp 将两个高精度数字相除 bcmod 求高精度数字余数 bcmul 将两个高精度数字相乘 bcpow 求高精度数字乘方 bcpowmod 求高精度数字乘方求模 bcscale 配置默认小数点位数,相当于Linux bc中的”scale=” bcsqrt 求高精度数字平方根 bcsub 将两个高精度数字相减 ログイン後にコピー 上記の警告メッセージにあるように、2 つの浮動小数点数が等しいかどうかを比較することには、内部式のため問題があります。ただし、浮動小数点値を比較する回りくどい方法があります。 浮動小数点数が等しいかどうかをテストするには、その値よりほんの少しだけ大きい最小誤差値を使用します。この値は、マシン イプシロンまたは最小単位整数とも呼ばれ、計算で受け入れられる最小の差の値です。 と小数点以下 5 桁の精度に相当します。 <?php $a = 1.23456789; $b = 1.23456780; $epsilon = 0.00001; if(abs($a-$b) < $epsilon) { echo "true"; } ?> ログイン後にコピー 文字列型 文字列が二重引用符 (") で囲まれている場合、PHP はいくつかの特殊文字を解析します: n、\、$ 二重引用符で定義された文字 最も重要な機能 文字列はキーに関連付けられた型で連結されます。 array() 言語構造を使用して、任意の数の key => を作成できます。カンマで区切られた値のペア。array( key => value , ... ) // 键(key)可是是一个整数 integer 或字符串 string // 值(value)可以是任意类型的值 此外 key 会有如下的强制转换: <?php $arr = array(5 => 1, 12 => 2); $arr[] = 56; // This is the same as $arr[13] =56; at this point of the script $arr["x"] = 42; // This adds a new element to the array with key "x" unset($arr[5]); // This removes the element fromthe array unset($arr); // This deletes the whole array ログイン後にコピー には、正当な整数値を含む文字列が含まれます。たとえば、キー名「8」は実際には 8 として格納されます。ただし、「08」は整数に変換されます。有効な 10 進値ではないためキャストされません。浮動小数点数も整数に変換されます。つまり、キー名 8.7 は実際には 8 として格納されます。また、整数型に変換され、キー名 false は 0 として格納されます。
foreach 控制结构是专门用于数组的。它提供了一个简单的方法来遍历数组。 数组(Array) 的赋值总是会涉及到值的拷贝。使用引用运算符通过引用来拷贝数组。 <?php $arr1 = array(2, 3); $arr2 = $arr1; $arr2[] = 4; // $arr2 is changed,// $arr1 is still array(2, 3) $arr3 = &$arr1; $arr3[] = 4; // now $arr1 and $arr3 are the same ?> ログイン後にコピー NULL 相关推荐: |
以上がphpデータ型の例の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。