2025年12月18日
PHP関数:isset()
この関数の説明
isset() は、変数が未定義または nullL(空欄) でないか?をチェックするPHP関数です。
メモ
PHP7までは未定義変数を処理しても空白として処理してくれました。
しかしPHP8からは未定義変数を処理すると警告が表示されるように変更になりました。
そこでisset()を利用して変数が未定義または nullLでないか?をチェックする必要性がでてきました。
1.$_POST, $_GET, $_SESSIONなどのスーパーグローバル変数処理
2.通常の変数や配列処理
関数
isset($var,・・・)
パラメータ
$var (配列や変数名)(必須)
調べたい変数名を指定します。
戻り値
isset() は変数が未定義または null かを判定します。
事例
①未定義変数の扱い
PHP7系までは下記の$msgや$_POST['input_text']の未定義変数は空白でも処理してくれました。
<?php echo '入力データ='.$msg.'<br>'; echo '入力データ='.$_POST['input_text'].'<br>'; ?>
しかしPHP8系から変数は存在を確認してから利用する必要性がでてきました。
<?php $msg = '';//変数定義 echo '入力データ='.$msg.'<br>'; $data02 = isset($_POST['input_text']) ? $_POST['input_text'] : '';//入力データチェック echo '入力データ='.$data02.'<br>'; ?>
一般的にフォームデータを取得するためには下記の様に記述します。
<?php $LastName = isset($_POST['LastName']) ? $_POST['LastName'] : ''; $FirstName = isset($_POST['FirstName']) ? $_POST['FirstName'] : ''; $adress1 = isset($_POST['adress1']) ? $_POST['adress1'] : ''; $adress2 = isset($_POST['adress2']) ? $_POST['adress2'] : ''; $subject = isset($_POST['subject']) ? $_POST['subject'] : ''; $message = isset($_POST['message']) ? $_POST['message'] : ''; ?>
②ISSET()データの文字連結
isset()を使って取得したデータを文字連結させるのは.=(ドットイコール)を利用します。
<?php $ans = 'data='; $ans .= isset($_POST['input_text']) ? $_POST['input_text']:""; echo $ans.="<br>"; ?>
■input_textが「123」の場合は、「data=123」が出力されます。
③変数に値がセットされているかを判定する。
<?php $val_1 = ''; // ''をセット $val_2 = 'a'; // 文字をセット; $val_3; // 変数だけを設定 $val_4 = null; // nullをセット echo isset($val_1) ? '$val_1=値あり<br>':'$val_1は null<br>'; echo isset($val_2) ? '$val_2=値あり<br>':'$val_2は null<br>'; echo isset($val_3) ? '$val_3=値あり<br>':'$val_3は null<br>'; echo isset($val_4) ? '$val_4=値あり<br>':'$val_4は null<br>'; ?>
■4行目:変数だけをセットすると5行目と同じになります。
■6~9行目:三項演算子 で値を判定しています。
■実行結果は下記になります。
$val_1=値あり
$val_2=値あり
$val_3は null
$val_4は null
④複数の変数の値を判定する
<?php $val_1 = ''; // ''をセット $val_2 = 'a'; // 文字をセット; $val_3; // 変数だけを設定 $val_4 = null; // nullをセット $flg = isset($val_1,$val_2,$val_3,$val_4); var_dump($flg); ?>
■$val_3と$val_4がfalseなので結果は下記になります。
bool(false)
関連情報
関連関数は 文字列で操作する関数 を参照してください。