isset
(PHP 4, PHP 5, PHP 7)
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)); // TRUEvar_dump(isset($a, $b)); // TRUEunset ($a);var_dump(isset($a)); // FALSEvar_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'])); // TRUEvar_dump(isset($a['foo'])); // FALSEvar_dump(isset($a['hello'])); // FALSE// キー 'hello' は NULL と等しいのでセットされていないと見なされる。// もし NULL なキー値に対してチェックを行いたい場合、次を試してみること:var_dump(array_key_exists('hello', $a)); // TRUE// 配列の深い要素の値のチェックvar_dump(isset($a['pie']['a'])); // TRUEvar_dump(isset($a['pie']['b'])); // FALSEvar_dump(isset($a['cake']['a']['b'])); // FALSE?>
例2 文字列のオフセットに対する isset()
PHP 5.4 以降では、文字列内でのオフセット指定を渡したときの 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']));?>
上の例の PHP 5.3 での出力は、このようになります。
bool(true) bool(true) bool(true) bool(true) bool(true) bool(true)
上の例の PHP 5.4 での出力は、このようになります。
bool(false) bool(true) bool(true) bool(true) bool(false) bool(false)