質問: ``` echo (empty($_SERVER["HTTPS"]) ? "http://" : "https://") . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]; ``` 上記の意味ですが、 ($_SERVER["HTTPS"]) httpsでアクセスされたら http:// を頭につけて 違う場合は、 https://を頭につける。 という意味でしょうか? ``` echo (empty($_SERVER["HTTPS"]) ? "https://" : "http://") . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]; ``` 上記のように逆にした場合、 httpsでアクセスされたら https:// を頭につけて 違う場合は、 http://を頭につける。 という意味でしょうか?? 下のコードの場合、httpsのURL(リダイレクトされて、ブラウザの上部アドレスバーに出る)にもかかわらず、http://で出力(ソース)されてしまいますので、意味を間違えてるか、書き方が違うのか・・・ やりたいことは、https でアクセスされるという前提で(リダイレクトかけてます)、canonicalタグにURL(フルパス)を出力させたいのですが、上記のやり方は違うのでしょうか?なぜ違うか教えていただけますとありがたいです。。 または、下記のようにしたら同じ意味でしょうか? ``` " /> ```
回答: 式 ? 真 : 偽; $siki = "http"; echo $siki == "http" ? "http" : "https"; 結果 http $siki = "https"; echo $siki == "http" ? "http" : "https"; 結果 https