묻고답하기
_SERVER[HTTP_HOST] 따옴표 문의해요.
2014.12.15 04:43
$._SERVER[HTTP_HOST]
$._SERVER["HTTP_HOST"]
$._SERVER['HTTP_HOST']
위 세개의 같은 변수에서 따옴표가 있는게 맞나요?
있는게 맞다면 싱글 아니면 더블 인가요?
이것이 ie9 등 ie의 버전별로 다르게 인식하나요?
저것이 나를 삽질하게 할때가 있어서..
어떤때는 없는게 잡히고
어떤때는 있는게 잡히고 헷갈려서..도무지..
종결답변 부탁합니다.
댓글 3
-
퍼니엑스이
2014.12.15 10:23
-
퍼니엑스이
2014.12.15 10:27
$_SERVER[HTTP_HOST] 같은 경우는 HTTP_HOST를 상수로 인식합니다.
오래전에 개발된 프로그램을 보면 위와 같이 쓴 경우를 보실 수 있을텐데요. $_SERVER["HTTP_HOST"]에서 따옴표를 생략한 경우가 다반사입니다. 예전에는 PHP 문법이 굉장히 느슨해서 따옴표를 생략해도 문제가 없었습니다. 엄밀히 말하면 잘못된 문법이죠.
(사실 PHP 최신 버전에서도 위와 같은 문법을 사용할 수 있긴 하지만, Notice나 Warning 에러가 나올겁니다.)
-
또별
2014.12.16 03:16
퍼니엑스이님..감사합니다..
이거 지금 보고 또봐도 헷갈리네요.이것을 메모해서 HTTP_HOST 나올때마다 참고해야 겠어요.
~SERVER["거기시"] 이런 변수는 쌍따옴표가 들어가야 올은거군요.
어떤때는 싱글로 넣고 어떤때는 쌍따 넣고 어떤때는 안넣고 세가지 다 사용했는데..뇌가 정확히 모르고.. 헷갈려 하니까 손가락이 뇌의 통제를 안받고 손가락 지가 지맘데로 하더라고요.ㅎㅎ
$_SERVER["HTTP_HOST"]
$_SERVER['HTTP_HOST']
둘 다 맞습니다. PHP에서 쌍따옴표와 따옴표는 안에 있는 변수를 해석하느냐 하지 않느냐의 차이입니다.
$foo = 'PHP';
$bar = 'Flexible';
$pung = "$foo is $bar";
$pong = '$foo is $bar';
$pung 에는 PHP is Flexible 이라는 값이 들어가고, $pong 에는 $foo is $bar 이라는 값이 그대로 들어갑니다.