
【PHP】型 – 変数と値の種類(整数型/浮動小数点数型/文字列型/論理型)
変数や値(リテラル)には『型』と呼ばれる性質の定義があります。
型によってプログラムの動作が変わるので、処理をコントロールするためには必須の知識になります。
ここでは初心者向けに型について解説します。
-
型について
-
型の種類
-
型の出力
-
整数型
-
浮動小数点型
-
文字列型
-
論理型
変数・値の型とは
型とは性質の定義です。
変数や値の『種類』とイメージしていただくと分かりやすく、例えば1234
という値があるとき、この値が整数値なのか文字列値なのかを判別するための要素が型になります。
型の種類
型は様々な種類がありますが、代表的な型は次の7つになります。
種類 | 意味 | PHPでの名称 | 例 |
---|---|---|---|
整数型 | 小数点数以下がない数値 | integer | 1234 |
浮動小数点数型 | 小数点数以下がある数値 | float / double | 5.678 |
文字列型 | 文字を並べたもの | string | "Hello World" |
論理型 | 真偽を表すもの | boolean | true / false |
配列 | 複数のデータを順に並べたもの | array | [1,2,3,4] |
オブジェクト型 | クラスのオブジェクトなど | object | DateTime |
NULL型 | 何もないことを表すもの | NULL | NULL |
ここでは、初めに覚えておきたい整数型、浮動小数点数型、文字列型、論理型について解説していきます。
型の出力
型を学ぶにあたり、先に型の出力方法について説明します。
変数や値の型を出力するには、gettype()
という記述を使います。
丸括弧()
の中に変数または値を記述することで、型名を文字列で取得します。
サンプルコード
<?php
echo gettype(123);
?>
integer
なお、gettype()
は関数と呼ばれる仕組みを使ったものです。関数については後ほど学ぶ項目なので割愛しますが、ここでは型名を取得するにはgettype(変数)
またはgettype(値)
を記述すると覚えましょう。
整数型
整数型は小数点数以下がない数値を表す型です。
PHPの名称はintegerとなっており、整数値を使うと自動でintegerとなります。
サンプルコード
<?php
// 変数に整数値を代入
$var = 1234;
// 整数値の型を出力
echo '1234 : '.gettype(1234)."\n";
// 整数値を記憶した変数の型を出力
echo '$var : '.gettype($var)."\n";
?>
1234 : integer
$var : integer
浮動小数点数型
浮動小数点数型は小数点数以下がある数値を表す型です。
PHPの名称はfloatまたはdoubleとなっており、浮動小数点数を使うと自動でfloatまたはdoubleとなります。
floatとdoubleの違いはdoubleの方が小数点数以下の桁数を多く扱えることですが、gettype()の仕様ではfloatの場合でもdoubleと取得されます。
サンプルコード
<?php
// 変数に浮動小数点数値を代入
$var = 123.567;
// 浮動小数点数値の型を出力
echo '1234.567 : '.gettype(123.567)."\n";
// 浮動小数点数値を記憶した変数の型を出力
echo '$var : '.gettype($var)."\n";
?>
1234.567 : double
$var : double
文字列型
文字列型は文字を並べたものを表す型です。
PHPの名称はstringとなっており、文字列を使うと自動でstringとなります。
サンプルコード
<?php
// 変数に文字列値を代入
$var = 'Hello World!';
// 文字列値の型を出力
echo "'Hello World!' : ".gettype('Hello World!')."\n";
// 文字列値を記憶した変数の型を出力
echo '$var : '.gettype($var)."\n";
?>
'Hello World!' : string
$var : string
論理型
論理型は真偽を表す型です。
PHPの名称はbooleanとなっており、論理値を使うと自動でbooleanになります。
サンプルコード
<?php
// 変数に論理値を代入
$var = true;
// 論理値の型を出力
echo 'true : '.gettype(true)."\n";
// 論理値を記憶した変数の型を出力
echo '$var : '.gettype($var)."\n";
?>
true : boolean
$var : boolean
変数と値の型の違い
『変数の型』と『値の型』は少し意味が異なります。
変数の型は変数に記憶できる値の型を表し、値の型は値そのものの型を表します。
そのため、基本的には変数は自身の型以外の値を記憶することはできないため、違う型を代入する場合は変数の型を変換する必要があります。
ただし、PHPでは代入した値に応じて変数の型が自動で変換されるので、その部分については意識せずプログラミングすることができます。
この辺りの特性は動的型付け/静的型付けと呼ばれるもので、興味がある方は調べてみてください。
演習問題
次の実行結果になるプログラムを作成してください。
なお、下記の条件を満たすものとします。
- 実行結果の1行目の
integer
は値(リテラル)の型で出力 - 実行結果の2行目の
integer
は変数の型で出力
value : integer
variable : integer
次の実行結果になるプログラムを作成してください。
なお、下記の条件を満たすものとします。
- 実行結果の1行目の
double
は値(リテラル)の型で出力 - 実行結果の2行目の
double
は変数の型で出力
value : double
variable : double
次の実行結果になるプログラムを作成してください。
なお、下記の条件を満たすものとします。
- 実行結果の1行目の
string
は値(リテラル)の型で出力 - 実行結果の2行目の
string
は変数の型で出力
value : string
variable : string
次の実行結果になるプログラムを作成してください。
なお、下記の条件を満たすものとします。
- 実行結果の1行目の
boolean
は値(リテラル)の型で出力 - 実行結果の2行目の
boolean
は変数の型で出力
value : boolean
variable : boolean
まとめ
型は変数・値の性質を表します。
PHPに限らずプログラミング言語では型の知識は必須となりますので、覚えていきましょう。