更新履歴
更新日 | 更新者 | 更新内容 |
---|---|---|
2021/8/23 | JJI | ・”はじめに”の段落を追加 ・サンプルプログラムの実行結果に画面の画像を追加 |
はじめに
サンプルプログラムの中で次の記事で載せている関数を使用している場合があります。
型チェック
型チェックでよく使用する次の関数についてサンプルプログラムを使って説明します。
説明 | 説明(PHPマニュアル抜粋) |
---|---|
empty | 変数が空であるかどうかを検査する |
is_array | 変数が配列かどうかを検査する |
is_bool | 変数が boolean であるかを調べる |
is_float | 変数の型が float かどうか調べる |
is_int | 変数が整数型かどうかを検査する |
is_null | 変数が null かどうか調べる |
is_numeric | 変数が数字または数値形式の文字列であるかを調べる |
is_object | 変数がオブジェクトかどうかを検査する |
is_string | 変数の型が文字列かどうかを調べる |
isset | 変数が宣言されていること、そして null とは異なることを検査する |
サンプルプログラム1
is_で始まる型チェック関数を使用したサンプルプログラムです。
<?php
// 引数の値への厳密な型付け
declare(strict_types = 1);
// 共通ライブラリの読み込み
require_once __DIR__ . "../../../lib/sample_common.php";
// サンプルのクラス
class SampleObj {
private $num;
private $str;
}
echo "ファイル名:" . basename(__FILE__) . "<br>\n";
echo "【PHP】変数操作:型チェック関数<br>\n";
// オブジェクト
$sample_obj = new SampleObj();
// 各種データの配列
$mix_ary =[true, 0, "1.5", ["1", "2"], $sample_obj, 12.5, null, "あああ"];
// 型チェック関数
for($i = 0; $i < count($mix_ary); $i++) {
// gettype()関数を使用してis_xxxx()関数を呼び出す
$var = $mix_ary[$i];
$datatype = strtolower(gettype($var));
if($datatype === "boolean") {
$func = "is_bool";
} else {
$func = "is_" . $datatype;
}
if($func($var)) {
echo $i . ":$func(" . "):" . $datatype . ":<br>\n";
}
}
echo "<br>\n";
?>
実行結果です。
・画面

・HTML
ファイル名:sample02_07_02.php<br>
【PHP】変数操作:型チェック関数<br>
0:is_bool():boolean:<br>
1:is_integer():integer:<br>
2:is_string():string:<br>
3:is_array():array:<br>
4:is_object():object:<br>
5:is_double():double:<br>
6:is_null():null:<br>
7:is_string():string:<br>
<br>
サンプルプログラム2
empty()、is_null()、isset()関数を使用したサンプルプログラムです。
<?php
// 引数の値への厳密な型付け
declare(strict_types = 1);
// 共通ライブラリの読み込み
require_once __DIR__ . "../../../lib/sample_common.php";
echo "ファイル名:" . basename(__FILE__) . "<br>\n";
echo "【PHP】変数操作:型チェック関数2<br>\n";
// チェック対象の配列
$mix_ary =[null, "", [], true, false, 0, 1, "0"];
// 0、""、false、null、[](空の配列)はemptyと判定される
echo "emptyの処理結果<br>\n";
disp_result($mix_ary, "empty");
// nullのみ、true
echo "is_nullの処理結果<br>\n";
disp_result($mix_ary, "is_null");
// issetの場合、null以外はtrueと判定
echo "issetの処理結果<br>\n";
disp_result($mix_ary, "isset");
// チェック関数
function disp_result(array $ary, string $func_name) {
for($i = 0; $i < count($ary); $i++) {
$func = $func_name;
if(preg_match("/empty|isset/", $func_name) === 1) {
$func = "is_" . $func_name;
}
if($i != 0) {
echo " ";
}
echo $i . ":";
if($func($ary[$i])) {
echo "$func_name:";
} else {
echo "${func_name}以外:";
}
}
echo "<br>\n";
}
// emptyは可変関数で呼び出さないため、ラッパー関数
function is_empty($var) :bool {
return empty($var);
}
// issetは可変関数で呼び出さないため、ラッパー関数
function is_isset($var) :bool {
return isset($var);
}
?>
実行結果です。
・画面

・HTML
ファイル名:sample02_07_04.php<br>
【PHP】変数操作:型チェック関数2<br>
emptyの処理結果<br>
0:empty: 1:empty: 2:empty: 3:empty以外: 4:empty: 5:empty: 6:empty以外: 7:empty:<br>
is_nullの処理結果<br>
0:is_null: 1:is_null以外: 2:is_null以外: 3:is_null以外: 4:is_null以外: 5:is_null以外: 6:is_null以外: 7:is_null以外:<br>
issetの処理結果<br>
0:isset以外: 1:isset: 2:isset: 3:isset: 4:isset: 5:isset: 6:isset: 7:isset:<br>
コメント