検索

キーワード


【PHP】条件判定(変数の中身をチェックする関数と使い方について)

  • 公開日:2020-10-22 19:37:26
  • 最終更新日:2021-02-05 16:25:38

判定

PHPには、対象となる変数が指定した条件を満たしているかをチェックするための関数がいくつか用意されています。

今回はその中でも特によく使う関数を紹介していきます。


empty()

変数が空であるかどうかを検査する関数です。空であればTRUE、空でなければFALSEを返します。

この「空」という状態が非常にややこしいため、次にTRUEと判断されるパターンを記述します。

  • "" (空文字列)
  • 0 (整数 の 0)
  • 0.0 (浮動小数点数の 0)
  • "0" (文字列 の 0)
  • NULL
  • FALSE
  • array() (空の配列)
$var = 0;
var_dump($var);
bool(true)


is_null()

指定した変数が NULL かどうかを調べます。 NULLの場合はTRUEをNULLでない場合はFALSEを返します。

$a = NULL;
$b = 1;
var_dump(is_null($a), is_null($b));
bool(true)
bool(false)


isset()

変数が宣言されていること、そして NULL とは異なることを検査する関数です。

NULL が代入されている変数またはunset関数などで変数が破棄されたものの場合はFALSEを返します。

$var = "";
// 空文字はTRUE扱い
var_dump($var);

$a = "test";
var_dump(isset($a));

// unset関数を使って、変数aを破棄する
unset($a);
var_dump(isset($a));

$hoge = NULL;
var_dump(isset($hoge));
bool(true)
bool(true) bool(false) bool(false)


is_int()

変数が整数型かどうかを検査する関数です。整数型の場合はTRUEを、そうでない場合はFALSEを返します。

$a = 23;
$b = 23.5;
$c = "test";
$d = true;
var_dump(is_int($a));
var_dump(is_int($b));
var_dump(is_int($c));
var_dump(is_int($d));
bool(true)
bool(false) bool(false) bool(false)


is_float()

変数の型が float かどうか調べる関数です。float の場合はTRUEを、そうでない場合はFALSEを返します。

$a = 23;
$b = 23.5;
$c = "test";
$d = true;
var_dump(is_float($a));
var_dump(is_float($b));
var_dump(is_float($c));
var_dump(is_float($d));
bool(false)
bool(true) bool(false) bool(false)

is_bool()

変数の型が boolean かどうか調べる関数です。boolean の場合はTRUEを、そうでない場合はFALSEを返します。

$a = 23;
$b = 23.5;
$c = "test";
$d = true;
var_dump(is_bool($a));
var_dump(is_bool($b));
var_dump(is_bool($c));
var_dump(is_bool($d));
bool(false)
bool(false) bool(false) bool(true)


is_object()

変数がオブジェクトかどうかを検査する関数です。オブジェクトの場合はTRUEを、そうでない場合はFALSEを返します。

// オブジェクトから配列を返す
// シンプルな関数を宣言します
function get_students($obj)
{
    if (!is_object($obj)) {
        return false;
    }

    return $obj->students;
}

// 新しいクラスのインスタンスを宣言し、
// 値を設定します
$obj = new stdClass();
$obj->students = array('Kalle', 'Ross', 'Felipe');

var_dump(get_students(null));
var_dump(get_students($obj));


is_array()

変数が配列かどうかを検査する関数です。配列の場合はTRUEを、そうでない場合はFALSEを返します。

$array = [
  "test1",
  "test2",
  "test3"
];
$foo = "hoge";
var_dump(is_array($array));
var_dump(is_array($hoge));
bool(true)
bool(false)


まとめ

PHPでの、変数の中身のチェックを行う関数を紹介してみました。

主に変数の中身によって処理を分岐させたりする際に使うことが多いので、しっかり使い方をマスターしましょう!


【著者】

當山

主にPHPでのフレームワーク開発やWebアプリの開発に携わってきました。 得意分野はHTML5とCSSによるフロントエンド開発。

よく読まれている記事