ホームページ  >  記事  >  バックエンド開発  >  PHP入門チュートリアルでの数値データ型の詳細説明_PHPチュートリアル

PHP入門チュートリアルでの数値データ型の詳細説明_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:13:25913ブラウズ

PHP は弱い型指定です。使用時に変数の型を定義する必要はありません。変数は、指定した任意の型になります。

PHP では、変数の型は、変数に割り当てられた値によって決まります。割り当てられた値が整数の場合、変数は整数型であり、文字列の場合、変数は文字列型です。

コードは次のとおりです コードをコピー

$name="あなたの名前"; //名前は文字列型です。
$total=12; //合計は整数です
?>


PHP は 8 つのプリミティブ型 (型) をサポートしています。

4 つのスカラー型:

文字列(ストリング)
integer (整数型)
float (浮動小数点型、double とも呼ばれます)
ブール値 (ブール型)
2 つの複合タイプ:

配列 (配列)
オブジェクト
2 つの特別なタイプ:

リソース
NULL (空)
変数の型を表示する
gettype() 関数を通じて変数の型を簡単にチェックできます:

コードは次のとおりです コードをコピー

$var_bool = TRUE // ブール値
; $var_str = "foo" // 文字列
; $var_int = 12 // 整数

;

echo gettype($var_bool); // 出力 boolean
echo gettype($var_str); // 出力文字列
echo gettype($var_int); // 整数を出力します
?>

ヒント
歴史的な理由により、データが float 型の場合、gettype() 関数は float ではなく double を返します。
式の値と型を確認したい場合は、var_dump() 関数を使用します。
変数の型を決定する
変数の型を判断して次の論理アクションを決定したい場合は、gettype() を使用せず、is_type 一連の関数を使用してください。

コードは次のとおりですコードをコピー
$var_int = 12;

// $var_int が int 型の場合、加算を実行します

if (is_int($var_int)) {
$var_int = $var_int+4;
}
echo $var_int; // 出力 16
?>


整数データ型:

整数は、集合 Z={…,-2,-1,0,1,2,…} 内の数値です。整数値は、オプションの記号 (- または +) を前に付けて、10 進数、16 進数、または 8 進数の表記で指定できます。

8 進表記を使用する場合は数値の前に 0 (ゼロ) を追加する必要があり、16 進表記を使用する場合は数値の前に 0x を追加する必要があります。

例:

コードは次のとおりですコードをコピー

整数値は 10 進数、16 進数、または 8 進数で表すことができ、先頭にオプションの記号 (- または +) を付けることができます。

8 進数は数値の前に 0 (ゼロ) を追加する必要があることを意味し、16 進数は数値の前に 0x を追加する必要があることを意味します。

整数の語長はプラットフォームに依存しますが、通常の最大値は約 20 億 (32 ビット符号付き) です。 PHP は符号なし整数をサポートしていません。整数値の語長は定数 PHP_INT_SIZE で表すことができます。PHP 4.4.0 および PHP 5.0.5 以降では、最大値は定数 PHP_INT_MAX で表すことができます。

指定された数値が整数の範囲を超える場合、浮動小数点として解釈されます。同様に、演算結果が整数の範囲を超える場合も浮動小数点数が返されます。

PHP には整数の除算演算子がありません。 1/2 は float 0.5 を生成します。小数部分はいつでも破棄するか、round() 関数を使用できます。

値を整数に明示的に変換するには、(int) または (integer) キャストを使用します。ただし、演​​算子、関数、またはフロー制御で整数パラメーターが必要な場合、値は自動的に変換されるため、ほとんどの場合、キャストは必要ありません。関数 intval() を使用して値を整数型に変換することもできます。

ブール値から変換すると、FALSE は 0 (ゼロ) を生成し、TRUE は 1 (1) を生成します。
浮動小数点数からの変換 浮動小数点数から整数への変換では、ゼロ方向に丸められます。浮動小数点数が整数の範囲 (通常は +/- 2.15e+9 = 2^31) の外にある場合、浮動小数点数には正確な整数の結果を与えるのに十分な精度がないため、結果は不定になります。この場合、警告はなく、通知さえありません。

Boolean は最も単純な型です。ブール値は真理値を表し、TRUE または FALSE のいずれかになります。ブール値を指定するには、キーワード TRUE または FALSE を使用します。どちらも大文字と小文字は区別されません。

$a=1234; //10 進数

$a=-123; //負の数

$a=0123; //8 進数 (10 進数の 83 に等しい)

$a=0x1A; //16 進数 (10 進数の 26 に等しい)

?>

コードは次のとおりです コードをコピー

$foo=True; // $foo に true 値を代入します

?>

次の値は FALSE とみなされます:

� ブール値 FALSE

� 整数値0(ゼロ)

� 浮動小数点値 0.0 (ゼロ)

� 空文字列と文字列「0」

� メンバー変数のない配列

� ユニットのないオブジェクト

� 特別な型 NULL (設定されていない変数を含む) 他の値はすべて TRUE (リソースを含む) とみなされます

floatデータ型

浮動小数点数の語長はプラットフォームに依存しますが、通常、最大値は 10 進数 14 桁 (64 ビット IEEE 形式) の精度で 1.8e308 です。

0.1 や 0.7 などの一見単純な小数は、精度を少し損なうことなく内部バイナリ形式に変換できません。これは、混乱を招く結果につながる可能性があります。たとえば、floor((0.1+0.7)*10) は、結果の内部表現が 7.9 のようなものであるため、期待される 8 ではなく 7 を返すことがよくあります。

コードは次のとおりです コードをコピー

$a = 76.60;
$b = 76.00;

$c = $a-$b;
var_dump($c);

?>

出力は
です float(0.59999999999999)


ただし、76.70ではこの問題は発生しない…後から知りました

コードは次のとおりです コードをコピー

$a = 76.60; $d = 整数($a*100); var_dump($d); $a = 76.60;
$d = intval($a*100);
var_dump($d);
出力は int(7659) です


それは確かに 76.60 の問題です... (この問題は Java と Obj-C でも再現されます)

これは、有限の桁数で特定の小数を正確に表現することが不可能であるという事実と関係しています。たとえば、10 進数の 1/3 は 0.3 になります。

浮動小数点

浮動小数点数 (「浮動小数点数」、「倍精度浮動小数点」、または「実数」とも呼ばれます) は、次の構文のいずれかを使用して定義できます:

コードは次のとおりです コードをコピー

$a=1.234;

$a=1.2e3;

$a=7E-10;

?>

これらの数値タイプについては php で詳しく説明していますので、詳しく知りたい方は参照してください。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/629160.html技術記事 PHP は弱い型指定です。使用時に変数の型を定義する必要はありません。変数に指定した型は自動的に決まります。 PHP では、変数...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。