php の 3 つの関数 empty()、isset()、is_null() は多くの関数と似ていますが、簡単に考えてみると、1 つは null 値、1 つは変数、そして 2 つは異なるように見えます。 null かどうかを以下に例を挙げて説明します。
PHP の empty()、isset()、および is_null() 関数の使用法については、インターネット上にたくさんの情報がありますが、明確に説明できない人が多いです。ここにテスト例を示します。これら 3 つの機能を理解するのに役立ちます。
テストの種類は次のとおりです:
$a;
$b = false;
$c = '';
$d = 0;
$e = null;
$f = 配列();
?>
空()
コードは次のとおりです | コードをコピー |
var_dump(空($a)); // 出力 |
コードからわかるように、empty() はデータ型が空または false である限り true を出力します。
isset()
コードは次のとおりです | コードをコピー |
var_dump(isset($a)); // 出力 |
isset() は、NULL か未定義かを判断するためにのみ使用できることがわかります。
警告: isset() は変数でのみ使用できます。他の引数を渡すと解析エラーが発生するためです。定数が設定されているかどうかを確認したい場合は、define()関数を使用できます。
変数が宣言されているかどうかを確認したい場合は、isset関数を使用できます
変数にデータが割り当てられており、空ではないかどうかを確認したい場合は、empty関数を使用できます
変数が存在し、空ではないかどうかを確認したい場合は、まず isset 関数を使用し、次に empty 関数を使用します
たとえば、$id 変数を検出するには、$id=0 の場合、empty() と isset() を使用して、変数 $id が設定されているかどうかを検出します。両方とも異なる値を返します。empty() は、あると考えます。設定なし、isset() $id の値を取得できます:
コードは次のとおりです | コードをコピー |
$id=0; |
これは、変数処理関数を使用する場合、変数の値が 0 である可能性があるときに、empty() を使用するときに注意する必要があることを意味します。このとき、それを isset に置き換える方が賢明です。
PHP ページの URL 末尾パラメーターが id=0 (例: test.php?id=0) と表示される場合は、以下を比較してみてください:
コードは次のとおりです | コードをコピー |
|
上記の推論は、次のコードを個別に実行することで検出できます:
コードは次のとおりです | コードをコピー |
if(!isset($id)) $id=1; |
is_null()
コードをコピー | |
var_dump(is_null($a));
var_dump(is_null($b));
ブール(真) |