(PHP 4, PHP 5, PHP 7, PHP 8)
isset — 変数が宣言されていること、そして null
とは異なることを検査する
変数がセットされているかを調べます。
これは変数が宣言されており、 null
とは異なる値だということです。
変数が、unset() により割当を解除された場合、 もはやセットされているとは見做されません。
null
が代入されている変数をチェックしたときは、
isset() は false
を返します。
null文字 ("\0"
) は
PHP の null
定数とは異なることにも注意してください。
複数のパラメータが渡された場合は、
isset() は全てのパラメータがセットされている場合にだけ
true
を返します。
評価は左から右へと行われ、セットされていない値に出会うとすぐに評価が止まります。
var
調べたい変数。
vars
別の変数。
var
が存在して null
以外の値をとれば true
、
そうでなければ false
を返します。
例1 isset() の例
<?php
$var = '';
// これは TRUE と評価されるので、テキストが出力される
if (isset($var)) {
echo "This var is set so I will print.";
}
// 次の例では、isset() の戻り値を出力するため var_dump を
// 使用している
$a = "test";
$b = "anothertest";
var_dump(isset($a)); // TRUE
var_dump(isset($a, $b)); // TRUE
unset ($a);
var_dump(isset($a)); // FALSE
var_dump(isset($a, $b)); // FALSE
$foo = NULL;
var_dump(isset($foo)); // FALSE
?>
この関数は配列の要素に対しても動作します:
<?php
$a = array ('test' => 1, 'hello' => NULL, 'pie' => array('a' => 'apple'));
var_dump(isset($a['test'])); // TRUE
var_dump(isset($a['foo'])); // FALSE
var_dump(isset($a['hello'])); // FALSE
// キー 'hello' は NULL と等しいのでセットされていないと見なされる。
// もし NULL なキー値に対してチェックを行いたい場合、次を試してみること:
var_dump(array_key_exists('hello', $a)); // TRUE
// 配列の深い要素の値のチェック
var_dump(isset($a['pie']['a'])); // TRUE
var_dump(isset($a['pie']['b'])); // FALSE
var_dump(isset($a['cake']['a']['b'])); // FALSE
?>
例2 文字列のオフセットに対する isset()
<?php
$expected_array_got_string = 'somestring';
var_dump(isset($expected_array_got_string['some_key']));
var_dump(isset($expected_array_got_string[0]));
var_dump(isset($expected_array_got_string['0']));
var_dump(isset($expected_array_got_string[0.5]));
var_dump(isset($expected_array_got_string['0.5']));
var_dump(isset($expected_array_got_string['0 Mostel']));
?>
上の例の出力は以下となります。
bool(false) bool(true) bool(true) bool(true) bool(false) bool(false)