いつもありがとうございます。
別の方から同じ質問があったので、拝見しましたが、まだ納得できなかったので、質問させてください。
同質問の回答として
今回の場合は Cookie に color がセットされていない場合に NULL を返しますので、 ?? 'transparent' は必要となります。
とありますが、 Cookie がセットされていない場合は、 $colorFromGet
で null
を tranparent
に変換してますし、セットされてからは、 $colorFromGet
の transparent
を Cookie が受け取るので、 ?? 'transparent'
が不要に思えます。
私の認識は以下の通りです。
(1) 未選択の場合は、 $colorFromGet
に transparent
が代入される。
$colorFromGet = filter_input(INPUT_GET, 'color') ?? 'transparent';
(2) ブラウザ上で、 transparent
が Cookie にセットされる。
setcookie('color', $colorFromGet);
(3) result.php → index.php に戻る際、 transparent
という値が Cookie にセットされているので、 $color
にも transparent
が代入される。
$color = $colorFromGet ?? filter_input(INPUT_COOKIE, 'color') ?? 'transparent';
(4) 結果、背景色の規定値(transparent
) で index.php は表示されるため、 ?? 'transparent'
は不要では??
実際に $color
の ?? 'transparent'
を付けずに、背景色を未選択で試してみましたが、ソースコードも(4) の状態でエラーが起きていませんでした。( background-color: transparent
と表示)
長文となり申し訳ございませんが、ご回答よろしくお願いします。
この回答を見るにはプレミアムプランへの登録が必要です
プレミアムプランとは?