関数・クラス解説

isset

version:PHP 4, PHP 5, PHP 7 (公式)

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

公式リファレンス

書式

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

説明

変数がセットされているかを調べます。 これは変数が宣言されており、 NULL とは異なる値だということです。

変数が、unset() により割当を解除された場合、 もはやセットされているとは見做されません。

NULL が代入されている変数をチェックしたときは、 isset() は FALSE を返します。 null文字 ("\0") は PHP の NULL 定数とは異なることにも注意してください。

複数のパラメータが渡された場合は、 isset() は全てのパラメータがセットされている場合にだけ TRUE を返します。 評価は左から右へと行われ、セットされていない値に出会うとすぐに評価が止まります。

パラメータ

var
調べたい変数。
vars
別の変数。

返値

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

注意

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

注意: これは、関数ではなく言語構造のため、可変関数 を用いてコールすることはできません。
注意: オブジェクトのアクセス不能なプロパティに対して isset() を使用した場合は、もしオーバーロードメソッド __isset() が宣言されていればそれをコールします。
警告 isset() は何らかの値が渡された 変数の場合のみ動作します。そうでない場合、パースエラーとなります。 もし 定数 が設定されているかどうかをチェックする場合は、 defined() を使用してください。

サンプル

例1 isset() の例

$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

この関数は配列の要素に対しても動作します:

$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() の挙動が変わりました。

$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)

参考

  • empty() - 変数が空であるかどうかを検査する
  • __isset()
  • unset() - 指定した変数の割当を解除する
  • defined() - 指定した名前の定数が存在するかどうかを調べる
  • PHP 型の比較表
  • array_key_exists() - 指定したキーまたは添字が配列にあるかどうかを調べる
  • is_null() - 変数が NULL かどうか調べる
  • エラー制御演算子 @
  • ワード検索


    ※入力キーワードが、関数名・説明文・タグに含まれるものを検索

    関数名アルファベット別

    A B C D E F G H I J
    K L M N O P Q R S T
    U V W X Y Z _

    最終更新一覧

    stristr
     大文字小文字を区別せず文字列を検索し、ヒット箇所以降(あるいは以前)の文字列を返却

    stripslashes
     バックスラッシュでエスケープされた文字列から、バックスラッシュを取り除く

    stripos
     大文字小文字を区別せずに文字列が最初に現れる位置を取得する

    stripcslashes
     addcslashes() でクォートされた文字列をアンクォートする

    strip_tags
     文字列から HTML と PHP のタグを除去して返却

    strcspn
     指定した文字が最初に現れる位置を調べる

    strcoll
     ロケールに基づいて2つの文字列を比較し同じか(あるいは大小)を判定する

    strcmp
     2つの文字列を比較し同じか(あるいは大小)を判定する

    strchr
     strstr() のエイリアス

    strcasecmp
     2つの文字列を比較(大文字小文字を区別せず同じとみなす)

    カテゴリー一覧

    PHP の振る舞いの変更
    音声フォーマットの操作
    認証サービス
    コマンドライン関連
    圧縮およびアーカイブ
    暗号
    データベース関連
    日付および時刻関連
    ファイルシステム
    自然言語および文字エンコーディング
    画像処理および作成
    メール関連
    数学
    テキスト以外の MIME 型
    プロセス制御
    その他の基本モジュール
    その他のサービス
    検索エンジン用の拡張モジュール
    サーバー固有のモジュール
    セッション関連
    テキスト処理
    変数・データ型関連
    ウェブサービス
    Windows 用のモジュール
    XML 操作
    GUI用の拡張モジュール