PHPの基本文法 -型について-
PHPの基本文法について整理してみました。
PHPがサポートする型について
PHPは合計8種類の型をサポートします。
- 4種類のスカラー型
- 2種類の複合型
- 2種類の特別な型
スカラー型について
スカラー型は、常に1つの値を保持している変数です。
スカラー型には、以下の4種類があります。
- 理論値
- 整数
- 浮動小数点数
- 文字列
//理論値(Boolean) 真偽の値を表す。値はtrueかfalseの2つ。
//例)
$flag = true;
$flag = false;
//整数(integer)は、10進数、16進数、8進数、2進数表記で使用可能。
//8進数表記は「0」を、16進数表記は「0x」を、2進数表記は「0b」を数の前につける。
//例)
$num = 1234; //10進整数
$num = -123; //負の数
$num = 0123; //8進数(10進数だと83)
$num = 0x1A; //16進数(10進数だと26)
//浮動小数点(float)は、小数点以下の値を持つ数値。
//例)
$num = 1.234;
$num = 1.2e3; //1200
$num = 7E-10; //0.0000000007
//文字列(string)は、「'」(シングルクォーテーション)、または「”」(ダブルクォーテーション)で囲んで表現する
//例)
$str = 'Hello World';
$str = "Hello World";
複合型について
複合型は、複数の値を格納することができる変数です。
複合型には、以下の2種類があります。
- 配列
- オブジェクト
//配列は、array関数で作成する。
//例)
$array = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
$array = array("太郎", "二郎", "三郎");
$array = array(
"A" => "windows",
"B" => "Mac",
"C" => "Linux"
);
//オブジェクトは、クラスをインスタンス化して作成する。
//例)
class Hello{
public function reply($str)
{
echo 'こんにちは' . $str;
}
}
//Helloクラスのオブジェクトを生成する。
$hello = new Hello();
特別な型について
特別な型には、以下の2種類があります。
- リソース
- NULL
//リソースは、外部リソースへのリファレンスを保持している特別な変数です。
//リソースは特別な関数によって作成され、使用されます。
//例)
$fp = fopen("test.txt", "r"); // 外部ファイルオープン
var_dump($fp); // $fpはリソース型
fclose($fp); // ファイルクローズ
//ある変数が値を持たないことを表すのがNULLです。
//例)
$num = NULL;
型の変換について
PHPでは、変数の型はその変数が使用される文により定義される。
オペランドのどれかが「float」の場合、全てのオペランドは「float」として評価され、結果は「float」になる。
その他の場合は、オペランドは「int」として解釈され、結果も「int」になる。
$foo = 2; //fooは整数
$foo = $foo + 1.3; //結果はfloatの3.3
$foo = 5 + '10 age'; //結果は整数の15になる
キャストについて
ある変数を強制的にある特定の型として評価させたい場合には、型キャストを行う。
PHPの型キャストは、変換しようとする型をカッコで囲み、キャストする変数の前におきます。
$foo = 10;
$bar = (bool)$foo; //bar はbool
使用可能なキャストは、以下の通り。
キャスト | 説明 |
---|---|
(int),(integer) | 変数にキャスト |
(bool),(boolean) | 理論値にキャスト |
(float),(double),(real) | floatにキャスト |
(string) | 文字列にキャスト |
(array) | 配列にキャスト |
(object) | オブジェクトにキャスト |
(unset) | NULLにキャスト |
(binary) | バイナリ文字列にキャスト |