【週刊ドットインストール】 考える力を養うための新クラス『データで学ぶアルゴリズム』を256timesでリリース!
いつもありがとうございます。 別の方から同じ質問があったので、拝見しましたが、まだ納得できなかったので、質問させてください。
同質問の回答として
今回の場合は Cookie に color がセットされていない場合に NULL を返しますので、 ?? 'transparent' は必要となります。
とありますが、 Cookie がセットされていない場合は、 $colorFromGet で null を tranparent に変換してますし、セットされてからは、 $colorFromGet の transparent を Cookie が受け取るので、 ?? 'transparent' が不要に思えます。
$colorFromGet
null
tranparent
transparent
?? '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
$color = $colorFromGet ?? filter_input(INPUT_COOKIE, 'color') ?? 'transparent';
(4) 結果、背景色の規定値(transparent) で index.php は表示されるため、 ?? 'transparent' は不要では??
実際に $color の ?? 'transparent' を付けずに、背景色を未選択で試してみましたが、ソースコードも(4) の状態でエラーが起きていませんでした。( background-color: transparent と表示)
background-color: transparent
長文となり申し訳ございませんが、ご回答よろしくお願いします。
ドットインストールは、3分動画でマスターできるプログラミング学習サービスです。
3分で気軽に学習でき、スマートフォンからも視聴可能です。ホームページやWebサービスの制作を通して、実践的にプログラミングを学べます。
他にも、ゲーム制作やデータ分析・機械学習・AIに使われる言語まで幅広くカバー。学びたい分野のレッスンがきっと見つかります。
この回答を見るにはプレミアムプランへの登録が必要です
いつもありがとうございます。
別の方から同じ質問があったので、拝見しましたが、まだ納得できなかったので、質問させてください。
同質問の回答として
とありますが、 Cookie がセットされていない場合は、
$colorFromGetでnullをtranparentに変換してますし、セットされてからは、$colorFromGetのtransparentを Cookie が受け取るので、?? 'transparent'が不要に思えます。私の認識は以下の通りです。
(1) 未選択の場合は、
$colorFromGetにtransparentが代入される。(2) ブラウザ上で、
transparentが Cookie にセットされる。(3) result.php → index.php に戻る際、
transparentという値が Cookie にセットされているので、$colorにもtransparentが代入される。(4) 結果、背景色の規定値(
transparent) で index.php は表示されるため、?? 'transparent'は不要では??実際に
$colorの?? 'transparent'を付けずに、背景色を未選択で試してみましたが、ソースコードも(4) の状態でエラーが起きていませんでした。(background-color: transparentと表示)長文となり申し訳ございませんが、ご回答よろしくお願いします。