Немногие (почему-то) знают, что URL может начинаться с "//" без указания "http(s):" - и тогда на http-сайте ссылка получит префикс "http:", а на https - "https:".
Shaheen, задуматься, от чего это вообще зависит. Немножко почитать документацию.
Например, на страничке php.net про тот самый $_SERVER, который вы дважды используете в своем коде, есть описание $_SERVER['HTTPS'].
Shaheen, они примерно равнозначные, я бы использовал первый как наиболее очевидный для читающего этот код и, в отличие от второго, не провоцирующий ошибки при пустом значении.