【PHP】NULL 合体演算子
自分用メモです。
PHP7以降、??演算子が使えるようになった。
isset()を簡単に書けるようになったのである。
Contents
構文
1 | $z = $x ?? $y ; |
$xがnullでなければ$x、nullであれば$yが返される。
1 2 3 4 5 | if (isset( $x )){ $z = $x ; } else { $z = $y ; } |
と同じ意味である。
また
1 | $z = isset( $x ) ? $x : $y ; |
と同じ意味である。
使わないだろうけども、ネスト可能。
1 2 3 4 5 | $a = null; $b = null; $c = 1; $d = 2; echo $a ?? $b ?? $c ?? $d ; |
$aがnullのため、$bが評価される。
$bがnullのため、$cが評価される。
$cが1のため、$cが評価され、出力は[1]となる。
isset
変数がセットされていること、そしてNULLでないことを検査する。
nullの時falseを返し、存在する場合trueを返す。
複数をセットすることも可能。
1 | isset( $a , $b ); |
すべてがセットされている場合にtrueを返す。
左から順に評価を行い、nullがあった時点で処理を終了する。
また、配列にも有効。
注意
これは変数に対してのチェックである。
定数を調べたい場合はdefined()を使用する。
参考
- タグ:
- PHP