【PHP】NULL 合体演算子

自分用メモです。

PHP7以降、??演算子が使えるようになった。

isset()を簡単に書けるようになったのである。

構文

$z = $x ?? $y;

$xnullでなければ$xnullであれば$yが返される。

if(isset($x)){
	$z = $x;
}else{
	$z = $y;
}

と同じ意味である。
また

$z = isset($x) ? $x : $y;

と同じ意味である。

使わないだろうけども、ネスト可能。

$a = null;
$b = null;
$c = 1;
$d = 2;
echo $a ?? $b ?? $c ?? $d;

$anullのため、$bが評価される。
$bnullのため、$cが評価される。
$c1のため、$cが評価され、出力は[1]となる。

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

nullの時falseを返し、存在する場合trueを返す。
複数をセットすることも可能。

isset($a,$b);

すべてがセットされている場合にtrueを返す。
左から順に評価を行い、nullがあった時点で処理を終了する。
また、配列にも有効。

注意
これは変数に対してのチェックである。

定数を調べたい場合はdefined()を使用する。

コメントを残す

名前、メールアドレスは任意です。メールアドレスが公開されることはありません。

内容をご確認の上、送信してください。