こんにちはフロントエンドエンジニアのまさにょんです!
今回は、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!
神聖グンマー帝国の逆襲🔥
神聖グンマー帝国の科学は、世界一ぃぃぃぃぃぃ!!!!!