roppi
1/31/2013 - 5:58 AM

PHP の null チェックに関する関数の検証用コードです。

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);
}