PHP の null チェックに関する関数の検証用コードです。
<?php
// 表示用 初期設定
const TRUE_CHAR = '○';
const FALSE_CHAR = '×';
const PRINT_HEADER = "| value name | ==\"\" | ===\"\" | ! | empty | is_null | isset | is_string|
|-------------------:|:--------:|:--------:|:--------:|:--------:|:--------:|:--------:|:--------:|
";
const PRINT_BODY_FORMAT = "| %18s | %s | %s | %s | %s | %s | %s | %s |\n";
// 初期化していない変数を定義
$unInitialized;
// 評価対象の配列
$evalValues = array(
"undefined var" => $undefined, // 未定義の変数
"uninitialized" => $unInitialized, // 初期化していない変数
"value null" => null, // null
"bool true" => true, // true
"bool false" => false, // false
"empty string" => '', // 空文字
"string zero" => '0', // 文字の「0」
"number zero" => 0, // 数値の「0」
"empty array" => array() // 要素のない配列
);
// ヘッダを出力
print(PRINT_HEADER);
// ボディーを出力
foreach($evalValues as $key=>$value) {
// 各関数の結果を取得
$rst2EqualEmpty = $value == "";
$rst3EqualEmpty = $value === "";
$rstBoolean = !($value);
$rstIsNull = is_null($value);
$rstIsSet = isset($value);
$rstEmpty = empty($value);
$rstIsString = is_string($value);
// 結果を出力
printf(PRINT_BODY_FORMAT, $key
, $rst2EqualEmpty?TRUE_CHAR:FALSE_CHAR
, $rst3EqualEmpty?TRUE_CHAR:FALSE_CHAR
, $rstBoolean?TRUE_CHAR:FALSE_CHAR
, $rstEmpty?TRUE_CHAR:FALSE_CHAR
, $rstIsNull?TRUE_CHAR:FALSE_CHAR
, $rstIsSet?TRUE_CHAR:FALSE_CHAR
, $rstIsString?TRUE_CHAR:FALSE_CHAR);
}