홈으로 | 무료회원가입 | 아이디/비번찾기
추천음악방송 메인홈 1대1상담
운.영.자.1대1.상담
온라이브음악방송
온라이브스토어(앱다운로드)
아리랑가요(무료음악채널)
뽕짝아가씨(무료음악채널)
okTrot(무료음악채널)
전통가요(무료음악채널)

환상의뽕짝파티 무료음악
명작트로트메들리 무료음악
트로트메들리관광 무료음악
보안∵서버∵쿠키
윈도우∵프레임
이미지∵배경
시간∵달력∵계산
상태바∵타이틀바
음악∵영상
폼∵전송∵테이블
키보드∵마우스
효과∵링크∵메뉴
Script∵php
기타
PHP 강좌
윈도우관련팁
웹관련팁
홈페이지제작팁
기본강좌
레지스트리
윈도우서버
리눅스서버
Android
[PHP 기초] 변수, 상수
7년 전
변수
기초
변수란 어떤 값을 저장할 수 있는 공간 정도로 생각하면 됩니다. $변수명 = 값 형식으로 정의하여 사용하면 됩니다. PHP 변수는 앞에 꼭 $를 붙여야 합니다. 이때 같음표시(=)는 우리가 흔히 사용하는 양쪽이 같다는 의미로 쓰인 것이 아니고요. 오른쪽의 값을 왼쪽에 넣으라는 뜻으로 쓰입니다. 이를 대입연산자라 합니다.

$a = 10;
$b = 5;
$c = $a + $b;
echo $c;

위 코드에서 $a라는 변수에는 10이 들어있고, $b라는 변수에는 5가 들어있기 때문에 $a와 $b의 합인 $c에는 15라는 값이 들어가 있을 것입니다. 실행결과 15라는 값이 출력되겠죠

데이터 형
변수가 가질 수 있는 데이터의 형식을 데이터 형이라고 하는데요. PHP는 다음 기본 데이터 형을 지원합니다.

졍수형 : 모든 숫자에 사용
실수형(double) : 실수에 사용
문자열 : 문자의 나열에 사용
불리언 : 참, 거짓에 사용
배열 : 같은 형의 여러 데이터를 저장
객체 : 클래스의 인스턴스를 저장

나머지는 쉽게 이해할 수 있을 것이라 보고요. 배열과 객체에 대한 설명은 후에 하겠습니다. 그 외에 NULL와 resource 타입이 있는데, NULL은 특별히 NULL값을 가지는 변수를 NULL 형이라고 부릅니다.

형 강도
대부분의 프로그래밍 언어에서 변수를 어떤 데이터 형으로 미리 선언한 후 그 데이터 형에 해당하는 값만 사용할 수 있는 것에 비해, PHP는 변수에 저장된 값에 따라 형이 결정됩니다.

$a = 0;
$b = 0.00;
$a = 'Hello';

위 코드에서 $a에는 정수 0을 대입했기 때문에 $a는 정수형이 됩니다. 마찬가지로 $b는 실수(0.00)가 됩니다. 그리고 3번 줄에서 $a에 다시 'Hello'라는 문자열을 대입시켰는데 이 때 $a는 문자열이 됩니다. 이렇게 PHP는 변수에 저장된 값이 바뀔 때마다 그 데이터 형으로 변수 형이 바뀌게 됩니다.

데이터 형을 강제로 바꾸고 싶다면 C언어와 마찬가지로 변수 앞에 괄호를 넣고 그 안에 바꾸고 싶은 형을 적으면 됩니다.

$a = 0;
$b = (double)0;
$c = (string)$a;

위 코드에서 $a는 정수형, $b는 실수형, $c는 문자열이 되겠죠.

가변 변수
PHP는 가변 변수라는 것을 지원합니다.

$msg = '안녕하세요.';
echo "$msg<br>";

$varname = 'msg';
$$varname = '반갑습니다.';
echo '$msg<br>';

위 코드를 보세요. 2번 줄 실행 결과로 당연히 '안녕하세요'란 문자열이 출력되겠지요. 그럼 6번 줄 결과로 뭐가 출력될까요? 바로 한 줄 위를 보면 $$varname = '반갑습니다.';란 문장이 있습니다. $가 두번 쓰였죠. $varname에 'msg'란 값을 넣어두었으므로 $$varname은 $msg와 같은 뜻으로 쓰입니다.

그래서 $$varname = '반갑습니다.';란 문장은 $msg = '반갑습니다';와 같은 의미를 가지게 됩니다. $msg의 값은 '반갑습니다.'로 바뀌게 되고 6번 줄에서는 '반갑습니다'란 문자열이 출력되겠지요.

변수의 범위
변수의 범위란 스크립트 안에서 특정 변수를 사용할 수 있는 구간을 말합니다. PHP는 기본적으로 다음 여섯 가지 범위 규칙이 있습니다.

수퍼글로벌 변수는 스크립트 전역에서 사용할 수 있다.
한번 선언된 상수는 스크립트 전역에서 사용할 수 있다. 즉 함수의 안과 밖 모두에서 사용할 수 있다.
전역 변수는 스크립트 내에서 정의된 변수로 스크립트 내에서 사용할 수 있지만 함수 안에서는 사용할 수 없다.
함수 안에서 정의된 변수는 함수 내에서만 사용할 수 있다.
함수 안에서 전역으로 정의된 변수는 함수 밖에서 사용할 수 없지만 매 사용 시마다 값이 저장되어 다음에 사용할 수 있다. (뭔가 이상하군요...)
함수 안에서 사용된 변수는 함수가 끝나면 삭제된다.

수퍼글로벌이라는 특별한 범위의 변수는 다음과 같습니다.

$GLOBALS : 모든 전역 변수의 배열 (global 키워드처럼 함수 안에서 글로벌 변수에 접근할 수 있고, $GLOBALS['varname']처럼 접근할 수 있다.
$_SERVER : 서버 환경 변수의 배열
$_GET : GET 메소드로 넘어온 변수의 배열
$_POST : POST 메소드로 넘어온 변수의 배열
$_COOKIES : 쿠키 변수의 배열
$_FILES : 파일 업로드와 관련된 변수의 배열
$_ENV : 환경 변수의 배열
$_REQUEST : 사용자가 입력한 변수의 배열
$_SESSION : 세션 변수의 배열

폼 변수
PHP 스크립트에서 폼 필드 값은 PHP 변수처럼 접근할 수 있습니다. 예를 들어 myname이라는 텍스트 박스를 가진 폼이 PHP 파일로 값을 전달해 주면, 그 myname이라는 텍스트 박스의 값을 사용할 수 있다는 것입니다.

PHP 버전과 세팅에 따라 폼 데이터에 접근하는 방식은 세가지가 있습니다.

$myname // 짧은 스타일
$_POST['myname'] // 중간 스타일
$HTTP_POST_VARS['myname'] // 긴 스타일

짧은 스타일은 편하지만 register_global을 활성화 시켜야 합니다. 4.2.0 버전 이후로는 기본적으로 비활성화되어 있습니다. 짧은 스타일을 사용하면 변수를 정의할 필요가 없습니다. 그냥 바로 폼 필드의 이름을 변수로 사용하면 됩니다. 변수처럼 바로 접근하는 방식은 매우 편하지만 프로그램을 작성할 때 자신이 만든 변수와 섞이는 일이 발생할 수도 있습니다. 최근에는 인젝션해킹을 막기위해 대부분 서버에서 register_global 설정을 비활성화 시켜놓았습니다.

중간 스타일은 가장 추천되는 방식입니다. 4.1.0 이후부터 지원됩니다. $_POST, $_GET, $_REQUEST를 통해 접근할 수 있습니다. 폼 메소드가 POST로 되어 있을 때는 $_POST를 통해 접근할 수 있고, GET으로 되어 있을 때는 $_GET으로 접근할 수 있습니다. 그리고 POST, GET 상관없이 $_REQUEST를 통해 접근할 수도 있습니다.

긴 스타일은 잘 사용되지 않습니다. 어디에서나 사용할 수 있어 이식성이 높지만 성능을 높이기 위해 register_long_arrays를 비활성화 시킬 수도 있습니다.

상수
변수와 달리 값이 달라지지 않는 값을 사용하고 싶을 때가 있을 것입니다. 예를 들면 파이값을 3.14로 정의하고 사용할 수 있겠죠. 이렇게 한 번 값을 정하면 그 값을 바꿀 수 없는 것을 상수라고 합니다.

define('PI', 3.14);
echo PI;

위 코드와 같이 define 함수를 사용하여 상수를 정의하면 됩니다. 변수는 $를 붙이지만 상수는 상수의 이름만 적어주면 사용할 수 있습니다. 보통 상수의 이름을 지을 때는 대문자를 사용합니다. 이것은 관례로 꼭 그래야 하는 것은 아니지만 코드의 유지보수에 도움을 줍니다.
추천추천 : 409 추천 목록
번호 제목
3,026
 여러 도메인들 간 쿠키 공유하기
3,025
 태그 사이에 있는 텍스트를 추출
3,024
 [JQuery] textbox focus on off일때 숫자 콤마 보여주기
3,023
 쿠키 생성,가져오기,삭제
3,022
 사용자 함수 모음
3,021
 마우스,키보드 제한 ( 오른쪽클릭,드래그,영역선택등..)
3,020
 [HTML5] <video> - DOM으로 제어하기
3,019
 HTML5 video 태그에서 영상 좌우반전
3,018
 PHP - 특정 태그 및 문자열 추출, 제거
3,017
 [PHP] define과 defined의 차이
3,016
 우클릭 완벽차단 스크립트
3,015
 iframe 높이 100% 맞추기
3,014
 curl 함수를 이용한 HTTP REFERER 변경
3,013
 윈도우10 시스템 파일 및 Dism 검사
3,012
 텍스트 줄바꿈, 글자자르기 CSS
3,011
 jQuery Mobile에서 유용한 코드 10가지.
3,010
 [PHP] dirname()함수와 $_SERVER 관련 상수들
3,009
 [PHP] 파일 크기, 사이즈 불러오는 함수, filesize()
3,008
 [jQuery] jQuery Quick API
3,007
 [ transition ] 링크 hover 색상 변화 속도 조절
3,006
 PHP 5.3.0 에서 사라진 함수들 대체
3,005
 어떤 파일들이 include 나 require 되었는지 확인하는 함수(get_included_files)
3,004
 PHP 날짜 형식 및 계산하기(날짜 더하고 빼기)
3,003
 jQuery Mobile에서 유용한 코드 10가지.
3,002
 값이 배열 안에 존재하는지 확인하는 in_array함수
목록
추억의가요방(가사포함)
인기절정뽕짝파티
인기트로트모음
지루박디스코메들리
밤무대애창곡
전자올겐경음악
세월따라노래따라
가슴시린트로트
트로트쌍쌍파티
7080추억속으로
종합성인가요방
못잊을옛날노래
카바레 음악
트롯디스코팡팡
관광 메들리
트롯카페
가요감상실
추억의옛노래
스페셜가요광장
BillBoard Free
추천가요모음
경음악.전자올겐
스페셜음악여행
WOLRD POPs
K-POP\BillBoard
POP TOP BEST

최신인기가요특집
추천가요\인기
F뮤직 인기\발라드
F뮤직 애창\트로트
트로트성인가요
인기가요
프리미엄 POP
경음악\기타
프리미엄 최신가요
프리미엄 성인가요
뮤직트로트 부산광역시부산진구 가야동 ㅣ 개인정보취급방침
Copyright (C) musictrot All rights reserved.