変数操作 関数
PHP Manual

isset

(PHP 4, PHP 5)

isset変数がセットされていること、そして NULL でないことを検査する

説明

bool isset ( mixed $var [, mixed $... ] )

変数がセットされており、それが NULL でないことを調べます。

変数が、 unset() により割当を解除された場合、 何も値が設定されていない状態になります。 NULLに設定されている変数を調べた場合、 isset()FALSEを返します。 NULLバイト("\0")はPHPの定数 NULLと等価ではないことにも注意してください。

複数のパラメータを渡した場合は、 isset() はそれらすべてがセットされている場合にのみ TRUE を返します。 左から順に評価を行い、セットされていない変数があった時点で処理を終了します。

パラメータ

var

調べたい変数。

...

別の変数。

返り値

var が存在して NULL 以外の値をとれば TRUE、 そうでなければ FALSE を返します。

変更履歴

バージョン 説明
5.4.0

文字列のオフセットに非数値を指定した場合は 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 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() が宣言されていればそれをコールします。

参考


変数操作 関数
PHP Manual