【PHP入門】型の確認方法・型をチェックする方法 | gettype と is_*関数

値の型を確認する

こんにちはフロントエンドエンジニアのまさにょんです!

今回は、PHPの型の確認方法・型をチェックする方法について解説していきます。

型を確認する gettype() と 型の真偽をチェックする is_*関数

PHPで値の型を確認するには、gettype()やis_*() を使います。

gettype は引数の値の型を文字列で取得するメソッドです。

文字列を渡せば「string」, 真偽値を渡せば「boolean」と言うように、型の判定結果を文字列を返却してくれます。

is_*関数 は引数の値が、該当の型かどうかをチェックするメソッドです。

文字列のチェックメソッドは「is_string()」, 真偽値のチェックメソッドは「is_bool()」と型ごとに型の真偽判断メソッドがあります。

この2パターンを型の確認方法・真偽判定方法を理解しておけば、PHPの基本的な型チェックは問題なく実施できると思います。

<?php
// < PHPの型-Check gettype() と is_*関数 >

// 1. gettype() は、値の型を文字列で返してくれるメソッド

// 2. is_*()は、値の型をチェックして該当のものだったら「true」を返してくれるメソッド

echo gettype('ロボ玉') . "\n";
echo is_string('ロボ玉') ? 'true' . "\n" : 'false' . "\n";
echo '-----------------------------------' . "\n";

echo gettype(12) . "\n";
echo is_integer(12) ? 'true' . "\n" : 'false' . "\n";
echo '-----------------------------------' . "\n";

echo gettype(1.234) . "\n";
echo is_double(1.234) ? 'true' . "\n" : 'false' . "\n";
echo '-----------------------------------' . "\n";

echo gettype(true) . "\n";
echo is_bool(true) ? 'true' . "\n" : 'false' . "\n";
echo '-----------------------------------' . "\n";

echo gettype(null) . "\n";
echo is_null(null) ? 'true' . "\n" : 'false' . "\n";
echo '-----------------------------------' . "\n";


// [ 配列 ]
$array = [ 'ロボ玉試作1号機', 'ロボ玉試作2号機', 'ロボ玉試作3号機' ];

echo json_encode($array, JSON_UNESCAPED_UNICODE), " の型は、", gettype($array) . "\n";

echo is_array($array) ? 'true' . "\n" : 'false' . "\n";
echo '-----------------------------------' . "\n";

// ちなみに「JSON_UNESCAPED_UNICODE」は、
// => UniCode文字列に変換するのを回避するOption(日本語のまま表示するために使用)


// [ 連想配列 ]
$associative_array = [
    'name' => 'ロボ玉',
    'from' => 'グンマー帝国',
    'like' => 'ひま種',
];

echo json_encode($associative_array, JSON_UNESCAPED_UNICODE), " の型は、", gettype($associative_array) . "\n";

echo is_array($associative_array) ? 'true' . "\n" : 'false' . "\n";
echo '-----------------------------------' . "\n";

// [ stdClass ]
echo gettype(new stdClass()) . "\n";
echo is_object(new stdClass()) ? 'true' . "\n" : 'false' . "\n";
echo '-----------------------------------' . "\n";


// [ Object ]
class Robotama {
    public $name = 'ロボ玉';
    public $robotama_flag = true;
    public function hello() {
        echo 'ロボ玉なのだ!';
    }
}

$robotamaInstance = new Robotama;

echo json_encode($robotamaInstance, JSON_UNESCAPED_UNICODE), " の型は、", gettype($robotamaInstance) . "\n";

echo is_object($robotamaInstance) ? 'true' . "\n" : 'false' . "\n";


?>

コマンドラインでの実行結果は、次のとおりです。

コマンドライン・実行結果
string
true
-----------------------------------
integer
true
-----------------------------------
double
true
-----------------------------------
boolean
true
-----------------------------------
NULL
true
-----------------------------------
["ロボ玉試作1号機","ロボ玉試作2号機","ロボ玉試作3号機"] の型は、array
true
-----------------------------------
{"name":"ロボ玉","from":"グンマー帝国","like":"ひま種"} の型は、array
true
-----------------------------------
object
true
-----------------------------------
{"name":"ロボ玉","robotama_flag":true} の型は、object
true

Twitterやってます!Follow Me!

神聖グンマー帝国の逆襲🔥

神聖グンマー帝国の科学は、世界一ぃぃぃぃぃぃ!!!!!

PHP / Laravel書籍

参考・引用

  1. gettype – Manual – PHP

最近の投稿