2017-12-28 25 views
-1

나는 PHP 윈도우 10 운영 체제 에서 실행되고 내 컴퓨터에 7.0.2을 사용하고 있습니다.

나는 일반적으로 PHP는 변수의 유형을 결정하고 필요한 유형의 필요에 따라 변환하는 것을 알고있다.

그러나, HTTP는 텍스트 프로토콜로서 I했습니다 PHP는 $ _POST와 문자열로 $ _GET 같은 슈퍼 전역 배열에 제공되는 컨텐츠를 취급하지 않습니다 의심? 예를 들어

는 URL 아래 고려 :

/index.php?var1=null&var2=123 

$_GET["var1"] 유형 NULL의 문자열 'NULL' 또는 값을 포함 할 것인가? 문자열 '123' 또는 정수 유형 123의 값을 포함합니까? $_GET["var2"]?

및 기타 유사한 다른 내용이 다른 슈퍼 글로블에서 제공됩니까?

특히 SUperglobal에서받은 콘텐츠를 에코하거나 인쇄하면 문자열으로 자동 변환됩니까?

이 점에 대해 안내해주세요.

+4

왜 시도해 보지 않으시겠습니까? –

답변

0

알 수있는 간단한 방법은

localhost?var1=null&var2=123 

샘플 출력은 사용자의 질문에 대한 대답

D:\xampp\htdocs\index.php:3:string '123' (length=3) 
D:\xampp\htdocs\index.php:4:string 'null' (length=4) 

같은 것, 그리고 예를 들어, 사용 var_dump()

var_dump($_GET['var1']); 
var_dump($_GET['var2']); 

를 사용하여 테스트입니다

0

/index.php?var1=null&var2=123 당신의 예제를 사용하여 다음을 수행 :

  • $r = ($_GET['var2'] + 1)124의 값을 갖는 $r을 떠난다.
  • $r = $_GET['var2'] ."1"$r1231의 값을 갖는. ]

    : 쿼리 문자열 (?var1=null)의 "널 (null)"를 전달

그렇지 않으면 어떻게 다른 사람이 "널 (null)"의 값을 가진 문자열을 전달 할 수있을 것입니다 그것이 문자열로 치료를 받고가 발생합니다 PHP는 사용 된 컨텍스트를 기반으로하는 것입니다.

+0

'1234' 대신'1231' – Erwin

+1

@ 에윈 : 하하, 고마워! 수정 됨. – Tigger

0

예, PHP에서는 문자열로 처리됩니다.

변수 유형 결정 섹션에 있기 때문에 PHP 수동 웹 사이트에 있거나 읽는 중입니다.

링크 :) (getType로()는 is_array(), is_float(), is_int(), is_object : http://php.net/manual/en/language.variables.external.php

PHP는 몇 등 어떤 변수를 입력 발견 기능을 포함 , 및 is_string(). 유형에 대한 장을 참조하십시오.

HTTP는 텍스트 프로토콜이므로 대부분은 그렇지 않습니다. $ _POST 및 $ _GET 같은 Superglobal 배열로 제공되는 내용은 문자열로 유지됩니다. PHP 은 값을 특정 유형으로 변환하려고 시도하지 않습니다. 아래 예 에서 $ _GET [ "var1"]은 문자열 "null"과 $ _GET [ "var2"], 문자열 "123"을 포함합니다.

/index.php?var1=null & VAR2 =

(123) 나는 다음과 같은 문장이 혼란을 조금 동의 :

  • HTTP되는 텍스트 프로토콜, 대부분의 경우 모든 $ _POST 및 $ _GET과 같은 Superglobal 배열에 포함 된 내용은 문자열로 유지됩니다.
관련 문제