ホームページ >バックエンド開発 >PHPチュートリアル >PHP のデータ型 (1)_PHP チュートリアル
PHP は 8 つのプリミティブ型をサポートしています。
4 つのスカラー型:
Boolean
Integer (整数)
Float (浮動小数点数、「double」とも呼ばれます)
String (文字列)
2 つの複合型:
配列
オブジェクト
最後に、2 つの特別なタイプがあります:
リソース
NULL
コードの可読性を確保するために、このマニュアルではいくつかの疑似タイプも導入しています:
混合
数値
コールバック
「double」型についての言及も読むことができます。実際、double と float は同じものであり、歴史的な理由から、これら 2 つの名前は同時に存在していました。
変数の型は通常、プログラマによって設定されるのではなく、変数が使用されるコンテキストに基づいて実行時に PHP によって決定されます。
注: 式の値と型を確認したい場合は、var_dump() を使用します。
注: デバッグ用に人間が判読できる型の表現が必要なだけの場合は、gettype() を使用してください。型を確認するには、gettype() を使用せず、is_type 関数を使用します。以下にいくつかの例を示します:
<?php$bool = TRUE; // a boolean$str = "foo"; // a string$int = 12; // an integerecho gettype($bool); // prints out "boolean"echo gettype($str); // prints out "string"// If this is an integer, increment it by fourif (is_int($int)) { $int += 4;}// If $bool is a string, print it out// (does not print out anything)if (is_string($bool)) { echo "String: $bool";}?> |
変数を特定の型に強制したい場合は、キャストまたは settype() 関数を使用できます。
変数は、その時の型に応じて、特定の機会に異なる値を示すことに注意してください。詳細については、「タイプのトリック」を参照してください。さらに、さまざまな型を相互に比較する例については、PHP 型比較表を参照してください。
Boolean
これは最も単純な型です。ブール値は真理値を表し、TRUE または FALSE のいずれかになります。
注: ブール型は PHP 4 で導入されました。
構文
ブール値を指定するには、キーワード TRUE または FALSE を使用します。どちらも大文字と小文字は区別されません。
<?php$foo = True; // assign the value TRUE to $foo?> |
通常、何らかの演算子を使用してブール値を返し、それをフロー制御に渡します。
// == is an operator which test// equality and returns a booleanif ($action == "show_version") { echo "The version is 1.23";}// this is not necessary...if ($show_separators == TRUE) { echo "<hr>n";}// ...because you can simply typeif ($show_separators) { echo "<hr>n";} |
ブール値に変換する
値をブール値に明示的に変換するには、(bool) または (boolean) を使用してキャストします。ただし、演算子、関数、またはフロー制御でブール値パラメーターが必要な場合、値は自動的に変換されるため、多くの場合、キャストは必要ありません。
「タイプ トリック」を参照してください。
ブール値に変換すると、次の値は FALSE とみなされます:
ブール値 FALSE
整数値 0 (ゼロ)
浮動小数点値 0.0 (ゼロ)
空の文字列と文字列 "0"
配列メンバー変数なし
セルなしのオブジェクト
特別な型 NULL (設定されていない変数を含む)
他のすべての値は TRUE (リソースを含む) とみなされます。
<?phpecho gettype((bool) ""); // bool(false)echo gettype((bool) 1); // bool(true)echo gettype((bool) -2); // bool(true)echo gettype((bool) "foo"); // bool(true)echo gettype((bool) 2.3e5); // bool(true)echo gettype((bool) array(12)); // bool(true)echo gettype((bool) array()); // bool(false)?> |
1