最終更新日:
公開日:
レシピ
変数
変数の値が特定の型であるかを確認する
変数に入っている値が意図した「型」かどうかを確認する方法について解説します。
この記事のポイント
- 変数に入っている値の型を確認する
- 変数の値がnullかどうかを確認する
- 配列や浮動小数点数の型を確認する
目次
様々な型に対応したチェック方法
プログラムの中で、変数の値が「整数」か否か、または「文字列」かどうかなどを確認したいことがあります。
今回はそんな時に便利な、変数の値が意図した型であるかを確認する方法を解説します。
型を確認するための関数
型の種類ごとに、その型であるかを確認するための関数が用意されています。
次に、主要な確認用の関数を挙げてみました。
- is_bool() – 値が論理値であるかを確認する
- is_float() – 型が浮動小数点数であるかを確認する
- is_int() – 型が整数であるかを確認する
- is_numeric() – 値が整数、または数字の文字列であるかを確認する
- is_string() – 値が文字列であるかを確認する
- is_null() – 型がnullであるかを確認する
- is_array() – 値が配列形式であるかを確認する
- is_object() – 値がオブジェクト形式であるかを確認する
整数や文字列の型だけでなく、nullや配列、オブジェクトについても確認する関数が用意されています。
型を確認してみる
実際に変数に様々な値を入れて、それぞれの関数の出力結果を確認してみましょう。
まずは整数の「1」を入れてみます。
コード例
<?php
$a = 1;
var_dump( is_bool($a)); // false
var_dump( is_float($a)); // false
var_dump( is_int($a)); // true
var_dump( is_numeric($a)); // true
var_dump( is_string($a)); // false
var_dump( is_null($a)); // false
var_dump( is_array($a)); // false
var_dump( is_object($a)); // false
is_int関数とis_numeric関数のみtrueとなり、それ以外はfalseとなりました。
続いて、変数の値を文字列の「100」に変えて実行してみます。
コード例
<?php
$a = "100";
var_dump( is_bool($a)); // false
var_dump( is_float($a)); // false
var_dump( is_int($a)); // false
var_dump( is_numeric($a)); // true
var_dump( is_string($a)); // true
var_dump( is_null($a)); // false
var_dump( is_array($a)); // false
var_dump( is_object($a)); // false
is_numeric関数とis_string関数がtrueとなりました。
整数ではないのでis_int関数はfalseです。
次に、「null」の状態で実行をしてみます。
コード例
<?php
$a = null;
var_dump( is_bool($a)); // false
var_dump( is_float($a)); // false
var_dump( is_int($a)); // false
var_dump( is_numeric($a)); // false
var_dump( is_string($a)); // false
var_dump( is_null($a)); // true
var_dump( is_array($a)); // false
var_dump( is_object($a)); // false
is_null関数のみtrueとなりました。
次は値を配列形式にして実行してみます。
コード例
<?php
$a = ["test","array"];
var_dump( is_bool($a)); // false
var_dump( is_float($a)); // false
var_dump( is_int($a)); // false
var_dump( is_numeric($a)); // false
var_dump( is_string($a)); // false
var_dump( is_null($a)); // false
var_dump( is_array($a)); // true
var_dump( is_object($a)); // false
is_array関数のみtrueとなります。
配列の値を空にしても同じ結果となりました。
続いて、値を「false」にして実行してみます。
コード例
<?php
$a = false;
var_dump( is_bool($a)); // true
var_dump( is_float($a)); // false
var_dump( is_int($a)); // false
var_dump( is_numeric($a)); // false
var_dump( is_string($a)); // false
var_dump( is_null($a)); // false
var_dump( is_array($a)); // false
var_dump( is_object($a)); // false
値を「1.5125」に変更して実行してみます。
コード例
<?php
$a = 1.5125;
var_dump( is_bool($a)); // false
var_dump( is_float($a)); // true
var_dump( is_int($a)); // false
var_dump( is_numeric($a)); // true
var_dump( is_string($a)); // false
var_dump( is_null($a)); // false
var_dump( is_array($a)); // false
var_dump( is_object($a)); // false
is_float関数とis_numeric関数がtrueとなりました。
is_numeric関数は浮動小数点数であってもtrueとなるようです。
以上、様々な値を使って型の確認を行ってみました。
文字列であっても数値であればtrueと判断するis_numeric関数は少しゆるい判断基準ですが、文字列の「1」などに対しても使えるので便利かもしれません。
型の確認においてはgettype関数を使った方法もあります。
詳しくは「変数の値の型を取得する:gettype関数」をご覧ください。
また、型の強制変換を行いたい場合は「変数にセットされた値の型を強制変換する」をご覧ください。
こちらの記事は役に立ちましたか?
コメントありがとうございます!
運営の参考にさせていただきます。
ありがとうございます。
もしよろしければ、あわせてフィードバックや要望などをご入力ください。