강의 컨설팅 트레이닝 무료진단 무료책자 마케팅편지 마케팅정보공유 다이어리 서비스제휴 고객센터

php전역변수
작성자 : 13 김영철
등록날짜 : 2009.01.14 22:20
3,040
오늘은 변수의 사용범위(Variable Scope)에 대한 내용 중 전역변수에 대한 얘기를 해드리겠습니다.

PHP에서 변수가 사용될 수 있는 범위는 기본적으로 그 변수가 선언된 영역에 한정됩니다.

먼저, 다음의 간단한 예제를 보겠습니다.


<?
$first = 30;

Function Output() {
  echo("first : $first");
}

Output();
?>


위 예제는 먼저 Output 함수 밖에서 $first 변수에 30이라는 값을 넣고 Ouput 함수를 호출하여 $first 값을 출력하는 코드입니다.(함수에 대해서는 담에 설명하겠습니다.)

언뜻 보기에는 first : 30 이라고 출력될 것 같지만 위 예제를 확인하면 다음과 같은 결과가 나옵니다.


first :


바로 함수 밖에서 선언된 $first 변수가 함수 내에서는 유효하지 않기 때문에 $first 변수의 값이 공백으로 출력되게 됩니다.

그럼, 함수 밖에서 선언된 변수를 함수 내에서 사용하려면 어떻게 해야 할까요?

바로 변수 앞에 global 이라는 선언자를 붙여주어야 합니다.

따라서 위 예제를 다음과 같이 고치면 되겠죠.


<?
$first = 30;

Function Output() {
  global $first;
  echo("first : $first");
}

Output();
?>


따라서 위 예제를 확인하면 다음과 같은 결과가 나옵니다.


first : 30


참고로, global 선언해 준 변수를 전역변수라고 부릅니다.

마지막으로, 전역변수를 사용한 예제 하나를 더 보겠습니다.


<?
$first = 30;

Function Increase() {
  global $first;
  $first++;
}

Increase();
Increase();

$first++;

echo("first : $first");
?>


위의 예제를 실행하면 최종적으로 $first 변수에는 어떤 값이 저장될까요?

네, Increase() 함수 내의 $first 변수가 전역변수로 선언되었기 때문에 함수 밖에서 선언된 $first 변수가 함수 내에서도 유효하게 됩니다.

따라서, 위 예제를 실행하면 Increase() 함수를 두 번 호출하였기 때문에 $first 변수에 1을 두 번 더하게 되고 마지막에 함수 밖에서 또 한번 $first 변수에 1을 더하게 됩니다.

따라서, 다음과 같은 결과가 나오겠죠.


first : 33

출처 : Tong - 드렁크수달스님의 ■ PHP ■통

"쇼핑몰·홈페이지·오픈마켓
블로그·페이스북·이메일 등의 각종 마케팅 글쓰기,
각종 광고, 영업, 판매, 제안서, 전단지
반응율 3배×10배 이상 높이는 마법의 8단계 공식"
자세히보기

Comments

번호 제목 글쓴이 날짜 조회
2835 여러객체를 for 문 돌리며 사용 99 단국강토 02.19 3052
2834 [MSSQL]데이터베이스 옵션 설정 99 단국강토 01.12 3052
2833 씬시티 영화 처럼 특정색 강조하기 10 액션쟁이 01.07 3050
2832 T-SQL: Parameter Sniffing 쿼리 튜닝 99 단국강토 01.05 3047
2831 vmware에 설치한 페도라코어5에 vmware tool 설치하기 99 단국강토 01.05 3045
2830 SQL : 집계함수 : 집계함수. 13 김영철 01.23 3044
2829 [AJAX] DOMDocument 에서 selectSingleNode 을 이용한 XML 노드 (Node) 찾기 99 단국강토 12.30 3044
2828 테그의 기본 99 단국강토 02.04 3043
2827 동영상 그림크기조절 99 단국강토 12.30 3042
열람중 php전역변수 13 김영철 01.14 3041
2825 MSSQL 기본값 13 김영철 01.24 3040
2824 음악 태그 사운드 태그 댓글1 M 최고의하루 12.24 3039
2823 리눅스의 기본 명령어 99 단국강토 12.30 3039
2822 DBMS에 따른 날짜포맷 변환 99 단국강토 01.07 3038
2821 오라클 캐릭터 셋 변경 M 최고의하루 01.12 3038
2820 포토샵-만화처럼 보이게 하기(신시티스타일) 10 액션쟁이 01.07 3035
2819 [CSS]스타일시트 {속성:값}의 모든 것 99 단국강토 02.03 3035
2818 MovieClip.attachMovie 99 단국강토 02.05 3034
2817 MySQL에서 외래키 설정하기 13 김영철 01.29 3034
2816 일본어로 된 웹을 한글로 즐기기 99 단국강토 01.06 3033
2815 <HTML TIP> 스크롤바, 링크주변 점선 제거, IFrame속성.. 99 단국강토 02.03 3030
2814 버튼 미디어 플래이어를 구현해 보자 99 단국강토 02.19 3030
2813 문자열중 숫자만 출력하기 13 김영철 01.14 3030
2812 php 파일 업, 다운로드 13 김영철 01.13 3028
2811 BLOCKQUOTE TAG 99 단국강토 01.20 3027
2810 php 대용량 메일 13 김영철 01.13 3027
2809 cascasde(연속동작) 13 김영철 01.23 3025
2808 E execCommand() 의 명령어 목록 | JavaScript 99 단국강토 01.30 3024
2807 [정보] EditPlus에서 BOM 문제 해결법 13 김영철 01.14 3024
2806 php 대용량 메일 13 김영철 01.13 3024
마케팅
특별 마케팅자료
다운로드 마케팅자료
창업,경영
기획,카피,상품전략
동기부여,성취