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関数で配列のキーの有無を調べる | 侍エンジニアブ