$변수이름 = 값;
$name = "Alice";
$age = 30;
$is_member = true;
모든 변수는 **달러 기호($)**로 시작합니다.
변수 이름은 **영문자, 숫자, 밑줄(_)**로 구성되며, 숫자로 시작할 수 없습니다.
항목 |
설명 |
---|---|
시작 문자 |
반드시 $ 기호 다음에 영문자 또는 _로 시작 |
대소문자 구분 |
$name과 $Name은 서로 다른 변수 |
예약어 사용 금지 |
if, class, function 등의 예약어는 변수로 사용 불가 |
의미 있는 이름 권장 |
$_name, $user_age 등 읽기 쉬운 이름 사용 권장 |
PHP는 값을 대입함에 따라 변수의 타입이 자동으로 결정됩니다.
$number = 100; // 정수
$price = 99.99; // 부동소수
$name = "Alice"; // 문자열
$isActive = true; // 불리언
$items = array(1, 2); // 배열
자료형은 필요할 경우 gettype()으로 확인할 수 있습니다.
echo gettype($price); // double
$name = "Tom";
echo "Hello, $name"; // Hello, Tom
echo 'Hello, ' . $name; // Hello, Tom
변수의 값과 타입을 모두 출력할 수 있어 디버깅에 유용합니다.
var_dump($name); // string(3) "Tom"
$a = "hello";
$hello = "world";
echo $$a; // world
$a의 값은 “hello”
$$a는 $hello를 의미
항목 |
변수 |
상수 (define() 또는 const) |
---|---|---|
값 변경 |
가능 |
불가능 |
선언 방식 |
$name = ... |
define('NAME', ...) 또는 const NAME = ... |
사용 용도 |
자주 변경될 값 |
절대 변경되지 않을 값 |
함수 내부에서 선언된 변수는 해당 함수 내에서만 유효
function test() {
$x = 10;
echo $x;
}
함수 밖에서 선언된 변수는 기본적으로 함수 내부에서 사용할 수 없음
global 키워드 또는 $GLOBALS 배열로 접근 가능
$a = 5;
function show() {
global $a;
echo $a;
}
또는
function show() {
echo $GLOBALS['a'];
}
함수 |
설명 |
---|---|
isset() |
변수가 설정되어 있는지 확인 |
empty() |
변수가 비어 있는지 확인 |
unset() |
변수 제거 |
$name = "Tom";
if (isset($name)) {
echo "설정됨";
}
if (!empty($name)) {
echo "비어있지 않음";
}
unset($name);
하나의 변수에 다른 변수의 **참조(주소)**를 할당할 수 있습니다.
$a = 5;
$b = &$a;
$b = 10;
echo $a; // 10
$b는 $a를 참조하므로, $b를 바꾸면 $a도 같이 바뀜
초기화 없이 사용하지 말 것: PHP는 오류 대신 경고를 출력할 수 있음
명확한 변수명 사용: 유지보수성과 협업에 중요
스코프 주의: 전역과 지역 변수는 역할이 다르므로 의도적으로 사용하는 것이 좋음
구분 |
설명 |
---|---|
선언 |
$변수명 = 값; 형식으로 사용 |
데이터 타입 |
정수, 실수, 문자열, 배열, 불리언 등 |
출력 |
echo, print, var_dump() 등 사용 |
스코프 |
지역 변수, 전역 변수, 정적 변수 등 존재 |
기타 기능 |
변수의 변수, 참조 변수, 동적 타입 지원 |
PHP 변수는 매우 유연하고 동적으로 작동하지만, 그만큼 주의할 점도 많습니다. 변수의 생명주기와 스코프, 타입 변환, 명확한 변수명 사용 등을 염두에 두면 보다 안정적인 코드를 작성할 수 있습니다.