isset
変数が宣言されていること、そして null
とは異なることを検査する
説明
bool isset(mixed $var
, mixed ...$vars
)
変数が、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
?>
この関数は配列の要素に対しても動作します:
例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)
注意
警告
isset は何らかの値が渡された
変数の場合のみ動作します。そうでない場合、パースエラーとなります。
もし 定数
が設定されているかどうかをチェックする場合は、
defined を使用してください。
注意: これは、関数ではなく
言語構造のため、可変関数 や 名前付き引数 を用いてコールすることはできません。
注意:
オブジェクトのアクセス不能なプロパティに対して isset
を使用した場合は、もしオーバーロードメソッド
__isset()
が宣言されていればそれをコールします。