isset()関数は、変数が設定されており、NULL でないかどうかを検出するために使用されます。
unset() を使用して変数が解放されている場合、isset() は FALSE を返します。
isset() を使用して NULL に設定された変数をテストすると、FALSE が返されます。
また、NULL 文字 (「 」) は PHP の NULL 定数と同等ではないことに注意してください。
PHP バージョン要件: PHP 4、PHP 5、PHP 7
文法
bool isset ( 混合 $var [, 混合 $... ] )
パラメータの説明:
$var: テストする変数。
複数のパラメータが一度に渡された場合、isset() はすべてのパラメータが設定された場合にのみ TRUE を返し、計算プロセスは左から右に行われ、設定されていない変数が見つかるとすぐに停止します。
戻り値
指定された変数が存在し、NULL でない場合は TRUE を返し、それ以外の場合は FALSE を返します。
例
例
<?php $var = ' ' ; //結果は TRUE なので、次のテキストが出力されます。もし( isset ( $var ) ) { エコー"変数が設定されました。 " ; //以下の例では、var_dump を使用して isset() の戻り値を出力します。 // isset() の戻り値。 $ a = "テスト" ; $ b = "別のテスト" ; // TRUE var_dump ( isset ( $a , $b ) ) ; // TRUE 設定を解除する( $ a ) ; var_dump ( isset ( $ a ) ) ; var_dump ( isset ( $a , $b ) ) ; // FALSE $ foo = NULL ; var_dump ( isset ( $ foo ) ) ; ?>出力は次のとおりです。
変数が設定されます。ブール(真)ブール(真)ブール(偽)ブール(偽)ブール(偽)
これは配列内の要素にも機能します。
例
<?php $a =配列( ' test ' = > 1 , ' hello ' = > NULL , ' pie ' = > array ( ' a ' = > ' apple ' ) ) ;var_dump ( isset ( $ a [ ' foo ' ] ) ) ; var_dump ( isset ( $ a [ ' hello ' ] ) ) ; //キー 'hello' の値は NULL に等しいため、未設定とみなされます// NULL キー値を検出したい場合は、次の方法を試してください。 var_dump ( array_key_exists ( ' hello ' , $ a ) ) ; //より深い検出var_dump ( isset ( $ a [ ' pie ' ] [ ' a ' ] ) ) ; var_dump ( isset ( $ a [ ' pie ' ] [ ' b ' ] ) ) ; var_dump ( isset ( $ a [ ' cake ' ] [ ' a ' ] [ ' b ' ] ) ) ; ?>出力は次のとおりです。
bool(true)bool(false)bool(false)bool(true)bool(true)bool(false)bool(false)
文字列ディスプレイスメントを伴う 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 ' ] ) ; _dump ( isset ( $ expected_array_got_string [ 0.5 ] ) ) ; var_dump ( isset ( $ expected_array_got_string [ ' 0.5 ' ] ) ) ; PHP 5.3 での上記の例の出力:
bool(true)bool(true)bool(true)bool(true)bool(true)bool(true)
PHP 5.4 での上記の例の出力:
ブール(偽)ブール(真)ブール(真)ブール(真)ブール(偽)ブール(偽)