2010-02-21 8 views
4

PHP에서 switch 문에서 변수 범위는 어떻게 처리됩니까?PHP switch 문 변수 범위

$someVariable = 0; 

switch($something) { 

    case 1: 
     $someVariable = 1; 
     break; 

    case 2: 
     $someVariable = 2; 
     break; 
} 

echo $someVariable; 

겠습니까이 인쇄 0 또는 2 :

예를 들어,이 가상의 예를 들자면?

+16

왜 그냥 사용해 보지 않으시겠습니까? – Gumbo

답변

6

변수는 코드의 전체 부분에서 동일합니다. PHP에서 "블록 당"가변 범위가 없습니다.

그래서, $something1 또는 2, 그래서 $something12하지 않은 경우 당신은 당신의 코드 것 출력 1 또는 다른 한편으로

2. switchcase 중 하나를 입력하면 (예를 들어 0으로 게시 된 코드의 경우 해당 코드는 아무 것도 초기화되지 않았으므로) case 블록에 입력하지 않아도됩니다. 코드는 0을 출력합니다.

+1

PHP가 어휘 범위를 가지고 있다고하더라도'$ someVariable'은 여전히'switch' 블럭에서 접근 가능할 것입니다. –

1

1 또는 2가 인쇄됩니다. PHP의 변수에는 전체 기능의 범위가 있습니다.

1

switch 문에서 $someVariable의 값을 변경하면 1 또는 2를 출력하고 그렇지 않으면 0을 출력합니다.

5

PHP에는 global and function/method scope 만 있습니다. 따라서 블록 안에있는 $someVariable 블록은 외부 변수와 동일한 변수를 참조합니다.

그러나 $something 보낸

그것이 불확정 변수 통지의 경우 일치 없음 (미정 변수 null 동일) $someVariable 불변 유지되지 않으며 0 것 제기 액세스 (적어도 사용자가 제공 한 코드) 정의되지 밖으로 인쇄하십시오.