特定のPHP配列のインデックス値が存在するかどうかを判断する場合、一般的にはissetとarray_key_existsが使用されますが、2つのメソッドによって返される値は異なります。必要な場合はissetとarray_key_existsの違いを紹介します。それを参照してください。
まず簡単な例を見てみましょう
コードは次のとおりです | コードをコピー |
isset($a['key']) |
特定のキーが配列内に存在するかどうかを正確に示しますが、 isset はキー値が null かどうかのステータスを返すだけです。
isset関数は、変数が設定されているかどうかを検出する関数です。
形式: bool isset (mixed var [,mixed var[, ...]])
戻り値:
1. 変数が存在しない場合は FALSE を返します
2. 変数が存在し、その値が NULL の場合も FALSE を返します
3. 変数が存在し、値が NULL でない場合は、TURE を返します
4. 複数の変数を同時にチェックする場合、各項目が前の要件を満たしている場合にのみ TRUE が返され、それ以外の場合は結果が FALSE になります
例 1
コードは次のとおりです | コードをコピー |
$a = array('key1' => '123', 'key2' => null); |
これら 2 つの方法を使用してキー値の存在を確認します。結果は次のとおりです。
コードをコピー | |
isset($a['key1']) // true
array_key_exists('key1', $a); // true
array_key_exists('key2', $a); // true |
コードをコピー | |
$a = 配列 ('test' => 1, 'hello' => NULL); var_dump( isset ($a['test') ); // TRUE
var_dump( isset ($a['foo') ) // FALSE
// NULL キー値を検出したい場合は、次の方法を試してください。
|