로그인

검색

변수의 사용은 변수에 고정되지 않고 변경되는 값을 담아 이용하기도 하고 또 담긴 값을 여러곳에서 사용하기 위해서 사용하게 될 것 입니다.

 

$variable = '철수';

 

어떠한 입력에 의해 $variable 라는 변수에 '철수'라는 문자열이 대입이 되었습니다. 물론 저렇게 코드 자체에 '철수' 라고 넣는 경우는 드물겠죠.

 

$variable = $GET['name'];

 

이런식으로 사용자가 이름을 입력한 값을 대입하게 되는게 현실적인 코드 일 것 입니다.

 

어찌 되었던 $variable = '철수'; 라는 변수가 값을 가지고 있을때 이 변수를 이용할 수 있는 부분이 함수를 사용할 경우 함수 안과 밖에서 사용이 될 수도 있고 사용이 되지 않을 수 있습니다.

 

 

 

$variable = '철수';
function name() {
print '나의 이름은 ' . $variable . '입니다.';
}

 

name();

함수를 호출해서 실행을 하더라도

 

철수라는 값이 담긴 변수가 사용되서 출력이 되지 않습니다.

 

나의 이름은 입니다.  라고 출력이 되고 말죠.

 

이유는 함수 밖의 변수는 함수 안에서 사용이 되지 않습니다. 이런 함수 밖의 변수를 전역변수라고 부릅니다.

 


function name() {

$variable = '철수';
print '나의 이름은 ' . $variable . '입니다.';
}

 

name();

 

이렇게 함수 안에 변수가 위치한다면 해당 변수가 사용이 가능해집니다. 이런 경우 로컬변수(지역변수) 라고 부릅니다.

 

저 함수가 호출이 되면 

나의 이름은 철수입니다. 이렇게 변수가 사용되어 출력이 되는 것이죠.

 

 

 

함수 안에서 함수 밖의 전역변수에 접근하는 방법은 2가지 방법이 있습니다.

 

 

$variable = '철수';
function name() {
print '나의 이름은 ' . $GLOBALS['variable'] . '입니다.';
}

 

name();

 

$GLOBALS['variable'] 이렇게 $GLOBALS 배열변수 안의 원소명의 전역변수가 사용이 가능해 집니다.

 

$variable 전역변수가 함수 안에서 사용이 가능해 지는 것 입니다.

 

위와 같이 전역변수에 접근하도록 하면 함수를 호출하면

나의 이름은 철수입니다. 라고 출력이 되는 것이죠.

 

 

 

또 다른 한가지 방법은 함수 내에서 global 을 사용하는 것 입니다.

 

$variable = '철수';
function name() {

global $variable;
print '나의 이름은 ' . $variable . '입니다.';
}

 

name();

 

global $variable; 이라고 적어주면 $variable 변수는 지역변수가 아닌 전역변수를 가리키게 됩니다.

 

마찬가지로 함수를 호출하면 변수가 잘 사용되어 출력이 됩니다.

나의 이름은 철수입니다. 이렇게 말이죠.

 

 

그런데 여기서 흥미로운 것 하나가 있습니다.

함수 내에서 global 을 사용해서 전역변수를 사용하게 한 후 

해당 변수를 변경하게 되면 함수의 값이 새로 변경한 값으로 바뀌게 됩니다.

 

 

<?php
$variable = '철수';
function name() {
global $variable;
print '나의 이름은' . $variable . '입니다.';
$variable = '영희';
}
name();
print "<br>" . $variable;

 

전역변수 사용을 위해  global $variable; 을 해 준 후

전역변수를 사용해서 출력을 하고 난 후 

함수 내에서 변수의 값을 바꾸게 되면 이 전역변수의 값이 바뀌게 됩니다.

 

나의 이름은철수입니다.
영희

 

 

함수 내에서 새롭게 $variable = '영희'; 로 값을 바꾼게 함수 밖의 전역변수에는 영향을 주지 않을 것 같지만 그렇지 않고 영향을 주게 되는 것입니다.

 

global $variable; 의 코드가 있어서 그렇습니다.

만약 이게 없었다면 함수 내에서만 바뀐 값이 적용되고 밖에서는 다시 원래의 값이 계속 사용되게 되는 것 입니다.

 

Who's 꿀팁관리소장

profile
라이믹스로 커뮤니티 사이트를 운영하는 비개발자 운영자 입니다.
파트너쉽 맺으실 사이트 운영자분 환영합니다.
3 추천

php 기초지식(24)

php를 학습할 수 있습니다.

  1. read more
  2. read more
  3. php 객체 확장

    Date2021.09.20 Views197 Votes3
    Read More
  4. php 객체 생성자 __construct 메서드

    Date2021.09.17 Views500 Votes3
    Read More
  5. Read More
  6. php 객체 지향의 이해 4

    Date2021.09.12 Views253 Votes3
    Read More
  7. php isset()

    Date2021.09.11 Views145 Votes3
    Read More
  8. php 변수의 영역 전역변수와 지역변수

    Date2021.08.29 Views1996 Votes3
    Read More
  9. php 함수의 반환값

    Date2021.08.28 Views197 Votes3
    Read More
  10. php 함수의 기초

    Date2021.08.25 Views203 Votes3
    Read More
  11. php 다차원 배열

    Date2021.08.14 Views533 Votes3
    Read More
  12. Read More
  13. Read More
  14. php 배열의 원소 제거 unset()

    Date2021.08.08 Views339 Votes3
    Read More
  15. Read More
  16. Read More
  17. php 배열(array)

    Date2021.07.31 Views193 Votes3
    Read More
  18. php 반복문 for, while

    Date2021.07.28 Views502 Votes3
    Read More
  19. php 증감 연산자 ++, -- 3

    Date2021.07.27 Views277 Votes3
    Read More
  20. 활용이 가장 많은 중요한 if 조건문 3

    Date2021.07.26 Views235 Votes3
    Read More
  21. php 이스케이프 \(역슬래쉬) 사용 1

    Date2021.07.24 Views725 Votes3
    Read More
  22. Read More
Prev 1 2 Next
/ 2