블로그 이미지
'무른모'란 부드럽다라는 뜻을 가진 '무르다'라는 말과 도구, 연장을 뜻하는 '연모'라는 순 우리말의 합성어로 소프트웨어를 말합니다. seanhigher

카테고리

분류 전체보기 (161)
Blog srart (16)
Dev Center (94)
Real Life (13)
Mac life (21)
Naver life (17)
Total659,292
Today1
Yesterday53

'전역변수 참조'에 해당되는 글 1건

  1. 2010.05.04 어디서나 사용가능한 전역변수, 지역적으로 사용가능한 지역변수.
변수의 사용범위를 결정하는것은 변수와 메모리의 사용을 확대하는 좋은 방법이다. 중복되어 변수를 사용하게 되는 경우, 원하지 않는 값이 저장되어 있거나, 유지해야 할 값들이 사라지는 것에 대해서 대비할 수 있다.



전역변수라고 모든곳에서 사용 가능한 것이 아니다.
일반적으로 전역변수라고 하면 함수가 아닌 곳에서와, 함수에서 사용가능한 것이라고 생각하기 쉽다. 물론 어느곳에서든지 동일한 값으로 사용이 가능한 전역변수이지만, 아무런 준비없이 사용가능한 것은 아니다.

<?
  $a = 100;

  function value_print() {
    echo "value of variable \$a is $a.";
  }

  value_print();
?>

위의 소스를 실행하면 원하던 결과 대신 다음과 같은 결과 값을 보게 될 것이다.

value of variable $a is .


위와 같은 결과가 나오는 이유는 함수 안에서의 $a 와 함수 안의 $a 는 서로 다른 변수로 인식이 되기 때문이다. PHP 는 특별히 변수를 선언하는 과정이 없이 변수를 사용하게 되는데, 이러한 특성이 함수안에서 적용되어 echo 안의 $a 는 이미 전역변수로 선언된 $a 와는 다른 새로운 변수로 선언되어 사용되기 때문에 아무것도 없는 'null' 값이 저장되는 것이다.


함수안에서 전역변수 사용하기.
그렇다면 함수안에서 전역변수를 사용하기 위한 방법은 없는 것일까? 함수 안에서 동일한 변수를 전역변수를 참조하도록 선언을 해주면 된다. 함수 안에서 전역변수를 선언하기 위해서는 global 키워드를 사용한다.

<?
  $a = 100;

  function value_print() {
    global $a;          // 전역변수 참조
    echo "value of variable \$a is $a.";
  }

  value_print();
?>

위의 소스를 실행하면 다음과 같이 생각했던 결과를 얻게 된다.

value of variable $a is 100.



$GLOBALS 연관 배열.
PHP 에서는 미리 $GLOBALS 라는 연관배열이 정의되어 있다. 만약 개발자가 전역변수를 참조하기 위해 global 키워드를 사용하게 되면 그 변수는 $GLOBALS 의 연관배열에 저장이 된다. 위와 같이 global $a 라고 선언한다면 $GLOBALS['a']라는 이름으로 저장되는 것이다.

<?
  $a = 100;

  function value_print() {
    echo "value of variable \$a is $GLOBALS['a'].";          // $GLOBALS 배열을 이용한 전역변수 참조.
  }

  value_print();
?>

위와 같은 방법으로도 사용이 가능하게 된다.

Posted by seanhigher

댓글을 달아 주세요

최근에 달린 댓글

글 보관함