Php/docs/function.isset

提供:Dev Guides
< Php
移動先:案内検索

isset

(PHP 4, PHP 5, PHP 7)

isset変数が宣言されていること、そして null とは異なることを検査する


説明

isset ( mixed $var , mixed ...$vars ) : bool

変数がセットされているかを調べます。 これは変数が宣言されており、 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)

注意

警告 isset() は何らかの値が渡された 変数の場合のみ動作します。そうでない場合、パースエラーとなります。 もし 定数 が設定されているかどうかをチェックする場合は、 defined() を使用してください。


注意:

これは、関数ではなく

言語構造のため、可変関数 を用いて コールすることはできません。

注意:

オブジェクトのアクセス不能なプロパティに対して isset() を使用した場合は、もしオーバーロードメソッド __isset() が宣言されていればそれをコールします。

参考