php 에서 변수의 스코핑룰이 어떻게 되는지가 궁금합니다.

vudghkzm의 이미지

<?php

if (true) {
    $a = 1;
}

print $a;

?>

위의 코드를 실행하면 1이 찍힙니다.
C/C++, JAVA 와 같다면 분명 print $a; 를 컴파일할 때 $a 변수를 참조할 수 없다고 오류가 날텐데, php 는 잘도 if() { } 안에 있는 $a 변수를 참조하는거 같네요.

php 는 원래 저런건지 궁금합니다. 그리고 php 의 자세한 스코핑룰이 어떻게 되는지도 궁금합니다.

neogeo의 이미지

http://kr2.php.net/variables.scope

이것만큼 좋은 설명은 없으리라 믿습니다.

function 이외의 곳에선 거의 전부가 global 값으로 된다고 보셔도 무방합니다.

단 아래쪽 user 예제를 보시면

php 의 변수 scope 에 대해 짐작이 조금 가실 만한 내용이 많습니다..

-_- 별로 scope 가 일관적이지 못한건 사실이지요..

Neogeo - Future is Now.