NULL合体演算子でユーザーが未入力の場合にNULLを代入[備忘録]

自分の勉強用です。

$result = $_POST[$key] ?? null;

上でやっているのは、「$_POST[$key]」に入っている中身がnullかどうかを

演算子「??」で判定している。左辺の中身がnullだったら、「$result」にはnull(右辺)が入る。

nullではなかったら、そのまま「$_POST[$key]」の値が「$result」に入る。

 

他にもこんな書き方が出来る。

array_key_existsを使う

if (!array_key_exists($key, $_POST)) {
return null;
}

$result = $_POST[$key];

ただ、array_key_existsは、keyの値がnullでもtrueを返すので、keyの中身まであるかどうか精査したいときには不便。

 

issetを使う

if (!isset($_POST[$key])) {
return null;
}

$result = $_POST[$key];

issetはkeyの中身がnullだったらfalseを返すので、keyの中身があるかどうかを調べたいときには便利。

 

速度的にもissetのほうが検索は速いとのこと。

参考↓

【PHP入門】array_key_exists関数で配列のキーの有無を調べる | 侍エンジニアブ