PHPマニュアル/PEARマニュアル | ユーザフォーラムで議論/質問 | マニュアル検索 | ハイライト | ハイライトオフ | ポータル | php spot

isset - 変数がセットされていること、そして NULL でないことを検査する | JavaScript入門&応用&リファレンスなら「JavaScriptist」

  

isset

(PHP 4, PHP 5, PHP 7)

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() が宣言されていればそれをコールします。

参考

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


忘却曲線を使ってこの関数を確実に記憶に残す

フォーラムで「isset - 変数がセットされていること、そして NULL でないことを検査する」について話す
各種マニュアル: PHPマニュアル | PEARマニュアル | Smarty(英語)マニュアル | PHP-GTKマニュアル | isset - 変数がセットされていること、そして NULL でないことを検査する」をGoogle検索
copyright © 1997-2019 PHP ドキュメント作成グループ(ライセンス). provided by php spot. マニュアル: