2011-04-12 6 views
7

PHP 변수 범위에 대해 혼란스러워합니다.PHP 변수 범위

while(true){ 
    $var = "yes , it is a test!"; 
    } 
    printf($var) 

$var이 while 문 범위에 정의되어, 우리는 어떻게 그것이 범위의 밖에 얻을 수 : 같은? 문서에 대한 설명을 찾을 수 없습니다.

나는 그것이 PHP의 범위를 다루는 지 궁금해.

+3

'while (true)'는 무한 루프입니다 ... – atlavis

+0

돌아가서 이전 질문을 검토하십시오. 좋은 해결 방법이 있으면 녹색 '확인'을 사용하여 승인 된 것으로 표시하십시오. 아무 것도 없다면 (의심 스럽습니다) 결국 문제를 어떻게 해결했는지 자신의 질문에 대답 해보십시오. 또한 서식을 확인하십시오. – Nanne

+0

유용한 시작점이 될 수 있습니다. http://php.net/manual/en/language.variables.scope.php –

답변

2

당신이 잠시 밖으로받지 않습니다 while(true)을 할 경우, 그것은 중요하지 않을 수 있도록. 당신이 진짜 표현, 이런 식으로 뭔가있을 것입니다하지만

$i=0 
while($i<10){ 
    $var = "yes , it is a test!"; 
    $i++; 
} 
printf($var); 

그냥 작동 것이다 ( 이 쓸모없는 예입니다, 나는을 알고있다). "while"변수 범위가 특별하지 않아 printf가 문자열을 인쇄합니다. 확인 : http://php.net/manual/en/language.variables.scope.php

2

루프에는 PHP에서 어떤 범위도 없습니다. 변수는 단순히 루프 외부에서 사용할 수 있습니다.

그냥 루프 외부의 echo;

echo $var;

8

while 함수 아니다. 변수의 범위가 functionsclasses 인 경우

6

PHP에서 while 루프는 새로운 scope을 생성하지 않습니다. 그래서 설명서를 확인 완전한 답변을 위해 기능

0

알림 : 다른 PHP 버전은 $ GLOBALS, $ _SERVER ($ HTTP_SERVER_VARS [deprecated]) 및 $ _SESSION에서 다르게 동작합니다. 그것을 확인하십시오. 오래된 PHP 페이지가 항상 위쪽으로 호환되는 것은 아닙니다. 그걸 확인해야 해.